SQL Datenbank Designfrage vom Anfänger

stoller

Newbie
Registriert
Aug. 2014
Beiträge
1
Hallo! Ganz simple Frage, man stelle sich z.b. folgendes Szenario vor:

eine Tabelle mit Personen (ID-Nummer, Name, Alter, Wohnort etc.)
eine Tabelle mit Ländern (ID-Nummer, Name des Landes)

Ich will nun für alle Personen die liste der besuchten Länder speichern.

Wie mach man das am besten? Ein extra Feld bei der Person das (kommagetrennt) die IDs der besuchten Ländern hat?
 
Eine weitere Tabelle mit ID-Nummer der Person und ID-Nummer des besuchten Landes ....
Pro besuchtem Land ein Datensatz.
 
Eine Spalte mit Kommagetrennten Werten ist eine ganz schlechte Idee.
Die Daten sollten so atomar wie möglich (und wie nötig) sein.

Stell dir mal den Aufwand vor, wenn es darum geht Personen rauszufinden, die in bestimmten Ländern waren oder zwar in Land X und Y, aber nicht in Z.
Oder für eine Person soll die Liste der besuchten Länder geändert werden.

mugam's Antwort war schon richtig, aber um das etwas weiter auszuführen:
Google mal nach "Datenbank Normalisierung". Das sind gängige Vorgehensweisen, um eine Datenbank so zu modellieren, dass Daten atomar und nicht redundant vorhanden sind.

Das was mugam meint kommt bei m:n-Beziehungen zum Einsatz.
Hier der englische wikipedia Eintrag.
 
Zurück
Oben