Mehrfachnennungen umsetzen

Ruediger007

Benutzer
Beiträge
14
Hallo zusammen!

Ich habe ein Problem bei dem nicht so richtig weiterkomme.

Ich habe eine Person, die hat einen Namen und Hobbies. Die Anzahl der auszuwählenden Hobbies ist beschränkt auf 5 (Radfahre, Programmieren, Musik, Freunde, Lesen), es können aber beliebig viele gewählt werden. Jetzt habe ich mir zwei Möglichkeiten überlegt, das umzusezten.

1. Eine Tabelle mit bit Feldern.
ID|Name|Radfahren|Programmieren|Musik|Freunde|Lesen

2. Zwei Tabellen
a. ID|Name
b. ID_Hobby|ID|Radfahren|Programmieren|Musik|Freunde|Lesen.

3. Zwei Tabellen
a. ID|Name|Hobb_ID
b. Hobby_ID|Hobby

Welchen Ansatz soll ich verfolgen oder gibt es sogar einen besseren?

Viele Grüße

Rüdi
 
Werbung:
Eigentlich wären 3 Tabellen richtig, Personen, Hobbys und eine Zwischentabelle die beide verknüpft. Mit einem zusammengesetzten PK der Zwischentabelle, einem Constraint oder einem Trigger könnte man dann verhindern das ein Hobby doppelt zugewiesen wird (muss man aber nicht).

Die Variante mit 5 BIT Spalten verstößt gegen die Normalform, ist aber sehr simpel zu benutzen. Solange, bis dann 50 neue Hobbys dazu kommen sollen...
 
Eigentlich wären 3 Tabellen richtig, Personen, Hobbys und eine Zwischentabelle die beide verknüpft. Mit einem zusammengesetzten PK der Zwischentabelle, einem Constraint oder einem Trigger könnte man dann verhindern das ein Hobby doppelt zugewiesen wird (muss man aber nicht).

Wenn der PK sich aus den 2 Fremdschlüsseln zusammensetzt brauchst gar nix weiter.
 
Werbung:
Zurück
Oben