Hallo zusammen
Wir machen hier bei uns gerade ein Datenbankmodell und haben hier zwei verschiedene Lösungen für unser "Problem". Mich interessiert, welche Variante die "bessere"/"schönere" ist.
Also, zu den ANforderungen:
Ein Benutzer kann einen Einkaufszettel pflegen.
Ein Benutzer kann einen Einkaufszettel für einen anderen Benutzer freigeben.
Ich habe dann mal die Tabellen Benutzer und Einkaufszettel erstellt.
Dann in der Tabelle Einkaufszettel einen Foreign Key "id_benutzer", welcher auf die id der Tabelle Benutzer referenziert.
Für den Share habe ich dann eine "Verbindungstabelle" (wie sagt man richtig?) gemacht, mit zwei Foreign Keys, von welchen der eine auf Benutzer geht und der andere auf Einkaufszettel.
So, meines Erachtens würde das ja prinzipiell funktionieren, jetzt wurde aber folgendes vorgeschlagen:
Man kann ja den Foreign Key in der Tabelle Einkaufszettel löschen und dafür in der Verbindungstabelle ein "Boolean"-Feld "Eigentümer" setzen.
Jetzt stellt sich die Frage, welche Varianten bieten welche Vor- und Nachteile?
Was mir einfällt ist, dass in der ersten Variante ganz einfach durch die FK's sichergestellt ist, dass ein Einkaufszettel immer einem Benutzer gehört. In der zweiten Variante muss durch wahrscheinlich irgendwelche Constraints (ich bin kein DBA, an dieser Stelle *g*) sichergestellt werden, dass in der Verbindungstabelle für ein "Schlüsselpärchen", also Benutzer und Einkaufszettel, immer genau ein Eintrag existiert, bei welchem dieses Boolean-Eigentümer-Feld auf true gesetzt ist...
Was meint ihr dazu?
Besten Dank und Gruss
slowy
Wir machen hier bei uns gerade ein Datenbankmodell und haben hier zwei verschiedene Lösungen für unser "Problem". Mich interessiert, welche Variante die "bessere"/"schönere" ist.
Also, zu den ANforderungen:
Ein Benutzer kann einen Einkaufszettel pflegen.
Ein Benutzer kann einen Einkaufszettel für einen anderen Benutzer freigeben.
Ich habe dann mal die Tabellen Benutzer und Einkaufszettel erstellt.
Dann in der Tabelle Einkaufszettel einen Foreign Key "id_benutzer", welcher auf die id der Tabelle Benutzer referenziert.
Für den Share habe ich dann eine "Verbindungstabelle" (wie sagt man richtig?) gemacht, mit zwei Foreign Keys, von welchen der eine auf Benutzer geht und der andere auf Einkaufszettel.
So, meines Erachtens würde das ja prinzipiell funktionieren, jetzt wurde aber folgendes vorgeschlagen:
Man kann ja den Foreign Key in der Tabelle Einkaufszettel löschen und dafür in der Verbindungstabelle ein "Boolean"-Feld "Eigentümer" setzen.
Jetzt stellt sich die Frage, welche Varianten bieten welche Vor- und Nachteile?
Was mir einfällt ist, dass in der ersten Variante ganz einfach durch die FK's sichergestellt ist, dass ein Einkaufszettel immer einem Benutzer gehört. In der zweiten Variante muss durch wahrscheinlich irgendwelche Constraints (ich bin kein DBA, an dieser Stelle *g*) sichergestellt werden, dass in der Verbindungstabelle für ein "Schlüsselpärchen", also Benutzer und Einkaufszettel, immer genau ein Eintrag existiert, bei welchem dieses Boolean-Eigentümer-Feld auf true gesetzt ist...
Was meint ihr dazu?
Besten Dank und Gruss
slowy