Mysql: Datenbankaufbau
Sabrina
- datenbank
Eine wunderschönen Guten Abend,
ich stehe vor einem Problem, und hoffe das mir bei meinem ersten Post hier eventuelle Fehler nachgesehen werden.
Es geht um folgendes.
In einer mysql Datenbank befinden sich 2 Tabellen.
tab1 und tab2.
In tab1 sind die Datensätze abhängig von den Datensätzen in tab2.
Da die Anhängigkeiten in tab1 gespeichert werden sollen, stehe ich vor einem Problem. Solange in tab1 ein Datensatz nur von einem Datensatz in tab2 abhängig ist, ist alles ok. Es können aber auch 2,3,4,5 oder mehr Abhängigkeiten möglich sein.
Ich möchte in tab1 aber nun auch keine 5 Spalten anlegen und die Abhängigkeiten speichern, sondern lediglich in einer Spalte.
Mein erster Gedanke ist das über folgende Idee:
tab2 hat eine ID die sich nicht ändert. Diese ID als nicht wiederholende Zahl kann ja durch BT kodiert werden.
Also z.B.: so
tab1
------- abhängigkeit --------
00000010
Das Bitmuster stellt die Zahl 2 dar. Ist aber das erste Bit. Das erste Bit wäre für ich der Hinweis auf die ID in tab2. Usw.
Weiteres Beispiel:
tab1
------- abhängigkeit --------
00101010
Dieses Bitmuster verweist auf die ID 1,3,5!
Ich denke aber das ist ja recht kompliziert.
Geht das nicht eigentlich irgendwie anders? Wo denke ich falsch? Das kann ja nicht wirklich Sinn einer DB sein.
Bitte helft mir.
Mein Ziel ist in tab1 die Abhängikeiten zu tab2 Datensätzen in einer Spalte zu speichern.
Ich hoffe ich habe mich ein wenig verständlich ausgedrückt.
Danke für Eure Hilfe.
MFG Sabrina
Ahoi,
bitte gib doch mal den Inhalt der Tabellen an und schau mal was du unter SQL und 1:n-Relation findest. Die Begrifflichkeiten wie primary key und foreign key können ebenfalls helfen.
Dank und Gruß,
Ahoi,
bitte gib doch mal den Inhalt der Tabellen an und schau mal was du unter SQL und 1:n-Relation findest. Die Begrifflichkeiten wie primary key und foreign key können ebenfalls helfen.
Dank und Gruß,
Hallo frankx,
vielen Dank für deine Antwort:
so tab1:
Id Schiffsname Schild Angriff Ver Wend Ges Spr For
1 Snatcher 100 0 15 1 1071 84 1,4
2 Rettungsschiff 400 0 0 14 1071 169 2,4
3 Handelsschiff 500 0 0 14 357 338 5
4 Handelsriese 1500 0 0 14 500 823 3,13
5 A-Glider 300 100 120 13 250 42 9
6 Noulon 500 218 218 14 571 82 1,2,3
Aus tab1 bezieht sich Forschung auf die ID von tab2. Im DS 1 also auf die ID 1 und 4 aus tab2. Und dann so weiter.
so sieht tab2 aus:
forschungsid forschungname stufe
1 Impulslaserkanone 21
2 HiGs-Laserkanone 12
3 Elektronenkanone 12
4 Tachyonenwerfer 10
5 Flickswerfer 10
6 Wasserstoffrakete 20
7 Photonenrakete 13
8 Atomsprengkopf 20
9 Feststoffantrieb 15
10 Ionenantrieb 30
11 Tesonenantrieb 39
12 Verzerrungsantrieb 25
13 Rotationsschild 15
14 Phasenwechselschild 10
15 Quantenschild 10
16 Neodemschild 10
17 Plasmaschild 14
In beide Tabellen können durchaus noch neue Einträge hinzukommen. Das das passiert ist aber relativ gering. In tab2 ändern sich die stufen der Forschungen aber regelmäßig. Da die Stufen aber auch noch in anderen Tabellen (später) genutzt werden möchte ich eben diese in eine sep. Tabelle.
1:n Beziehung lese ich mir durch. m:n Beziehungen dann gleich noch mit. Auch Lektüre zu den Keys werde ich mir bei google mal anschauen.
Ich hoffe mein Beispiel ist nun konkreter.
Danke schön
die Sabrina
Moin,
ein Schiff kann mehrere Extras haben.
Ein Extra kann bei mehreren Schiffen vorkommen.
Dir fehlt eigentlich nur eine dritte Tabelle um die n:m-Relation
abzubilden.
"Forschung"
id_schiff, id_extra
1,4
1,5
2,5
2,6
3,1
4,1
4,3
Per JOIN kannst Du die Daten dann je nach Bedarf wieder zusammenführen.
Viele Grüße
Stefan
Hi,
könntest du das Bitte etwas genauer erklären?
Ich bin noch in der Lernphase und habe nicht genau verstanden was du mir vorschlägst.
Das es sich um eine m:n Relation handelt ist mir klar.
Nur die Umsetzung deines Vorschlags verstehe ich nicht. :(
LG
die Sabrina
Ahoi,
Das es sich um eine m:n Relation handelt ist mir klar.
Nur die Umsetzung deines Vorschlags verstehe ich nicht. :(
http://de.wikipedia.org/wiki/Kardinalität_(Datenbanken)#n:m
Dank und Gruß,
Vielen Dank frankx.
Das hat geholfen.
Eine dritte Tabelle löst mein Problem.
Ich trage in die Tabelle 3 die Fremdschlüßel aus tab 1 und 2 ein. Und jeder DS hat dann seine eigenen Abhängigkeiten.
Also Schiffe mit mit 5 DS in der tab 3 haben dann eben 5 stufen der Forschung aus tab 2. :)
Eigentlich einfach.
Danke nochmals.
LG
die Sabrina