Datenbank - mehrere "Objekte" zuweisen

Gast #5505029
Lesenswert?

Hallo,

ich versuche im Moment, in einem kleinen SW-Projekt meine 
Programmierkenntnisse zu erweitern. Dabei kommt auch eine DB zur Nutzung 
(SQLITE3), wo ich nun allerdings vor einem Problem stehe.

Das Problem ist sicherlich trivial, mir würde der passende 
Recherchebegriff reichen.

Ich habe einen Datensatz in der Tabelle Leute. Jeder davon besitzt 
Bücher.

ID  Name  Bücher
1   Hans  1,1,3
2   Lukas 1,3,4

ID  Buchname
1   Harry
2   Potter
3   Der Stein
4   Der Weisen

So, über die Spalte Bücher weise ich den Leuten Ihre Besitztümer zu. 
Allerdings ist das Handling programmiertechnisch schwer:
- Es sind immer Listen, die ich auswerten muss (1,1,3)
- ich muss immer die Anzahlen zählen, sortieren, und dann wieder auf die 
nächste Tabelle referenzieren (gebe mir Name von Buch 1,....)
- Die Zuweisung kann schnell fehlerbehaftet sein (z.B. gibt Nutzer 1,1.3 
ein)
....

Gibt es für solche Referenzierungsthemen andere/bessere Methoden? 
Objektzuweisungen, keine Ahnung?

Falls von Relevanz: Sprache ist Python.

VG
#5505043
Lesenswert?

Interpretiere ich Dich da richtig? Du hast eine Datenbanktabelle für die 
"Leute" und eine für die "Bücher" - und in der Tabelle der "Leute" hast 
Du eine Spalte bzw. ein Feld "Bücher", das eine durch Kommata getrennte 
Liste der Bücher enthält, welche diese Person besitzt?

Falls ja: Das macht man so nicht - eine derartige Beziehung zwischen 
Leuten und Büchern wird "m:n" bzw "Many-to-many" genannt - und in 
Datenbanken mit einer zusätzlichen Tabelle umgesetzt, die in diesem Fall 
die Daten enthalten würde, welche Person welches Buch besitzt:

("Leute"-Tabelle)
ID  Name
1   Hans
2   Lukas

("Bücher"-Tabelle)
ID  Buchname
1   Harry
2   Potter
3   Der Stein
4   Der Weisen

("Person-besitzt-Buch"-Tabelle)
ID Person Buch
1  1      1
2  1      1
3  1      3
4  2      1
5  2      3
5  2      4
Gast #5505356
Lesenswert?

Jan H. schrieb:
> Joachim S. schrieb:
>> ("Person-besitzt-Buch"-Tabelle)
>> ID Person Buch
>
> Die Spalte "ID" wird gerne weggelassen. Sieht man auch an den anderen
> Beispielen hier. Ich empfehle, sie anzulegen, weil man sich bei UPDATE
> und DELETE damit schon einfacher tut. Besonders, wenn eine Person ein
> Buch mehrfach ausleihen kann.

Oder noch weitere Attribute relevant werden, so dass aus dieser simplen 
Zuordnung noch etwas mehr wird, beispielsweise "ausgeliehen bis" und man 
dann sowas hat Buch - Ausleihe - Person

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren