Discord / Python, Gewinnspiel mit Datenbank?
Hallo,
Befinde mich in der Lernphase und probiere mit einer Datenbank zu arbeiten.
kann mir jemand erklären, wie ich es am besten mache, das, das Gewinnspiel nach dem Neustart des Bots noch klappt?
Bzw. Wie soll ich alle eintragen + wie kann ich machen das es nach dem Neustart klappt?
Liebe Grüße
2 Antworten
Du musst im Endeffekt die Daten, die du momentan nur im Arbeitsspeicher speicherst, identifizieren und in einer Datenbank speichern. Dabei wirst du eventuell feststellen, dass du einige Daten direkt erschließen kannst, wenn du nur die restlichen Datensätze betrachtest.
Wenn du mehr wissen möchtest müsstest du nochmal ein paar Sachen spezifizieren.
Dafür musst du dir einfach deinen Code angucken, und verstehen, wie er funktioniert. Du wirst ja irgendwelche Daten irgendwie laden.
Stell dir dein Programm vielleicht in Schichten vor.
Du hast ganz oben irgendeine Interaktionsmöglichkeit für Nutzer. Vielleicht ein Discord-Embed mit nem Beitretenbutton.
Du hast in der Mitte eine Logikschicht. Diese verwaltet, was logisch wann passieren soll. Bei einem Drücken des "Teilnehmen"-Buttons soll man beispielsweise in die Liste der möglichen Gewinner aufgenommen werden. Beim drücken des "Auslosen"-Buttons soll dann einfach einer ausgewählt werden.
Und ganz unten hast du deine Datenzugriffsebene. Hier speicherst du alle Daten, auf die deine Logikebene zugreifen will. Diese funktioniert momentan vielleicht einfach nur mit einer einfachen Liste.
Und genau diese Datenzugriffsebene ersetzt du jetzt durch eine andere. Welche eben nicht mehr einfach nur auf eine Liste zugreift, sondern die notwendige Abfrage an eine Datenbank schickt.
Vorraussetzung ist natürlich, dass du mit einer Datenbank deiner Wahl umgehen kannst. Wenn du das noch nicht kannst, musst du das zuerst lernen.
Um sicherzustellen das jeder Teilnehmer auch nach reboot des Bots gespeichert wird musst du entweder:
- jeden Teilnehmer in einer JSON oder SQL Speicher
Oder
- die Teilnehmer erst am Ende des Gewinnspiels ermitteln indem du dir die z.B. Reaktionen ausgeben lässt.
Danke für deine Antwort, wo finde ich raus, was als Arbeitsspeicher gespeichert wird?