Wie gebe ich Daten sinnvoll in eine Datenbank ein?

... komplette Frage anzeigen

5 Antworten

kommt drauf an, wie du die Länger und deren Zuordnung gespeichert hast - Das wäre eine typische "M zu N"-Zuordnung, wobei Leute und Länder je eine Tabelle sind und eine dritte, in der steht, welche Person ein Land gewählt hat, wobei die Personen mehrfach vorkommen können.

Leute (id, name): 1 - Person X, 2 - Person Y, 3 - Person Z
Laender (id, name): 1 - Spanien, 2 - Portugal, 3 - Frankreich
LaenderLeute (person_id, land_id): (1,1), (1,2), (2,1), (3,3)

Dann kommts drauf an, welche Datenbank du benutzt. MySQL, MSSQL, Oracle.....?

Die Abfrage selbst könnte dann einfach so aussehen

(select person_id from LaenderLeute where land_id=1;)

Damit kriegst du dann 1 und 2 raus für Person X und Y.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Joojoo
10.10.2016, 10:29

Okay danke! aber ich will ja den Namen der Person letztendlich haben und nicht deren ID. Wie kriege ich das dann hin? 

0

Genau das ist die herausragende Eigenschaft einer relationalen Datenbank, dass sie 1:n Beziehungen darstellen und verarbeiten kann. Nur ist das nicht ganz einfach, man muss sich schon etwas in die Datenbanktechnik einarbeiten. Aber abschrecken lassen sollte man sich deshalb nicht, denn gerade für so einfache Aufgaben wie Deine lassen sich bereits mit etwas Grundwissen realisieren.

Das bei diesen Datenbanken angewandte Prinzip ist die Aufteilung der Daten in mehrere Tabellen, die dann zur Verarbeitung verknüpft werden können.

In Deinem Fall brauchst Du drei Tabellen:

Eine für die Personen, eine für die Länder und eine für die Zuordnung.

1. Personen: Pers-Id, Name, ggf. weitere Daten zur Person.

2. Länder: Land-Id, Land, ggf. weitere Daten zum Land.

3. Zuordnung: Pers-Id, Land-Id,,,ggf. weitere Angaben zur Zuordnung.

In Personen steht nun:

1, Person-X, ...

2, Person-Y, ...

3, Person-Z, ...

In Länder steht:

4, Frankreich, ...

5, Portugal, ...

9, Spanien, ...

In Zuordnung steht:

1, 5, ...

1, 9, ...

2, 9, ...

3, 4, ...

Alle Einträge aufgelistet mit:

SELECT Name, Land, ... FROM Personen, Länder, Zuordnung

WHERE Zuordnung.Pers-id = Personen.Pers-Id

AND Zuordnung.Land-ID = Länder.Land-Id

sehen dann so aus:

Name                 Land

------------------------------------------------

Person-X,  Portugal

Person-X,  Spanien    

Person-Y,  Spanien

Person-Z,  Frankreich

Wenn Du jetzt noch z.B. zusätzlich angibst:

WHERE Land = 'Spanien'

bekommst Du nur die beiden Zeilen mit Spanien.

Das hier ist das Minimum, was Du wissen und machen musst, um Deine Aufgabe zu lösen. Da gibt es natürlich viele Feinheiten zum Ergänzen, die ich der Einfachkeit halber weggelassen habe. 

Antwort bewerten Vielen Dank für Deine Bewertung

Mach eine Excel-Tabelle, die Länder in verschiedenen Spalten eingeben und dann  kannst du über "sortieren und filtern" die einzelnen Länder rausziehen

Antwort bewerten Vielen Dank für Deine Bewertung

Nur ein Land in einer Spalte eingeben, dann ist es eindeutig zuweisbar bei einer Abfrage.

Antwort bewerten Vielen Dank für Deine Bewertung

Die Länder in verschiedenen Spalten eingeben und dann alle Spalten abfragen!

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?