Seite 1 von 1

sqlite3 n:m Beziehungen

Verfasst: Donnerstag 14. Mai 2020, 10:18
von Lina
Hallo,

Ich bin leider totaler Datenbankneuling, deshalb stehe ich bei folgender Aufgabenstellung etwas an:

Ich habe eine Datenbank mit der Tabelle Lebensmittel erstellt (so weit nicht einmal für mich eine Hexerei), darin befinden sich bereits einige Lebensmittel mit den Nährwerten auf 100g (sagen wir mal u.a. Haferflocken und Milch)
Nun möchte ich irgendwie Mahlzeiten in der Datenbank abbilden (sagen wir mal Porridge aus Haferflocken und Milch).
Außerdem möchte ich Mengenangaben machen (also aus wie viel Haferflocken und Milch das Porridge besteht - das passt mir logisch aber nicht so zu den Zuweisungen, keine Ahnung ob ich damit richtig liege)
Meine Recherchen haben mich nur so weit gebracht, dass es sich dabei um einen n:m Beziehung handelt (jedes Lebensmittel kann in mehreren Mahlzeiten verwendet werden und Mahlzeiten bestehen aus mehreren Lebensmitteln).

Angefangen habe ich den Spaß mal in sqlite3, ob das sinnvoll ist kann ich leider nicht einschätzen.

Nun wollte ich fragen, ob mir jemand bei der weiteren Umsetzung helfen kann. Mir würden bereits Headlines/Suchbegriffe/Links o.Ä. weiterhelfen, damit ich weiß an welchem Ende ich anknüpfen muss.
Geholfen wäre mir außerdem mit einer Einschätzung ob ich das zeitnahe hinbekommen kann, oder ob das ein aufwändigeres Thema wird, wo ich mir länger Zeit nehmen sollte.

Vielen Dank für eure Zeit & Mühe
Liebe Grüße

Lina

Re: sqlite3 n:m Beziehungen

Verfasst: Donnerstag 14. Mai 2020, 10:30
von __deets__
n:m ist schon ganz gut. Du brauchst hier 3 Tabellen:

- Rezept, mit einem eindeutigen Schluessel (meistens nimmt man dafuer IDs mit AUTOINCREMENT)
- Zutaten, es gilt auch ^^^
- RezeptZutaten mit drei Spalten: einem Fremdschluessel mit Verweis auf das Rezept, einem Fremdschluessel mit Verweis auf die Zutat, und einer Spalte Menge. Das kann man natuerlich noch beliebig komplizierter machen, zB die Menge als double-Wert, und dann noch eine Einheit (0.5 Teeloeffel, etc).

Re: sqlite3 n:m Beziehungen

Verfasst: Donnerstag 14. Mai 2020, 13:47
von __blackjack__
Wobei man sich das AUTOINCREMENT bei SQLite eventuell überlegen sollte, da es in der Regel bei einer INTEGER PRIMARY KEY Spalte nicht notwendig ist: https://sqlite.org/autoinc.html

An der Stelle empfehle ich ja gerne SQLAlchemy um auf Datenbanken zuzugreifen, weil das netterweise solche Sachen für einen übernimmt und für die jeweiligen DBs das ”richtige” macht.

Re: sqlite3 n:m Beziehungen

Verfasst: Donnerstag 14. Mai 2020, 13:49
von __deets__
Ich wuerde Anfaengern erstmal das selber-spielen mit SQL anraten, damit man da ohne die Zwischenebenen von SA ein bisschen mehr Sicherheit bekommt. Danach ist das natuerlich super.

Re: sqlite3 n:m Beziehungen

Verfasst: Donnerstag 14. Mai 2020, 19:24
von Lina
Ui vielen vielen Dank fürs rasche und kompetente Antworten, damit kann ich was anfangen :-)

Ja, ich werde vorerst mal beim manuellen rumspielen bleiben, ohne SQLAlchemy, eben damit ich es lerne.. für später aber ein super wertvoller Tipp.