PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (My)SQL Table innerhalb Table möglich?


rotalever
2008-06-01, 21:05:01
Also gibt es sowas, dass man eine Table hat und eine Zeile besteht zum Beispiel aus einem "Namen" und einem weiteren Datentyp, der eine Table enthält, wo dann eine beliebige Anzahl Items enthalten sein können.
Also gibt es einen Datentyp für ein Tabellenfeld, der selber wieder eine Tabelle ist?
Ansonsten könnte man natürlich eine Tabelle machen, die die ganzen n "Namen" und noch vielleicht weitere Daten in n Spalten enthält und dann weitere n Tabellen erzeugen, die dann die Sub-Tabellen für die "große" Tabelle darstellen. Stört es MySQL eigentlich wenn man zum Beispil 50000 Tabellen in einer DB anlegt? :D

Gast
2008-06-01, 21:45:39
Das, was du vorhast, ist so mit dem relationalen Datenmodell nicht wirklich vereinbar. Stattdessen löst man sowas über Foreign Keys:
Also du machst eine Tabelle mit deinen "Namen" und einer eindeutigen ID. Und eine zweite Tabelle, wo jede Spalte zusätzliche Informationen enthält und sich auf eine ID aus der ersten Tabelle bezieht.
Hoffe mal ich habe dich nicht falsch verstanden.

rotalever
2008-06-01, 22:04:34
Also zumindest der zweite Teil des Textes wahr wohl wirklich falsch zu verstehen, ich hab das mal verbessert. Die Große Tabelle hat natürlich nicht n Spalten sondern n Zeilen/Rows und somit n "Namen".
Ich mach am besten noch mal ein Beispiel wie ich es mir ursprünglich gedacht habe: Es gibt die n=2 Kategorien, Obst und Gemüse. Also eine Tabelle:

TabelleGroß =
id name
1 "Obst"
2 "Gemüse"

und es gibt n=2 weitere Tabellen:

Tabelle_Obst =
id bezeichnung
1 Apfel
2 Banane
3 Kiwi

Tabelle_Gemüse =
id bezeichnung
1 Tomate
2 Gurke


Das wären dann schon n+1 Tabellen, wenn n groß wird also viele.


Hab ich es richtig verstanden, dass du es so meinst?

Tabelle1 =
id name
1 "Obst"
2 "Gemüse"

Tabelle2 =
id kategorie_id bezeichnung
1 1 "Apfel"
2 1 "Banane"
3 1 "Kiwi"
4 2 "Tomate"
5 2 "Gurke"

Gast
2008-06-01, 22:09:09
Ja, so meinte ich das. Löst das denn dein Problem?

rotalever
2008-06-01, 22:14:00
Ich denke schon. Vorher wollte ich wenn ich zum Beispiel die Kategorie "Obst" gewählt hatte, wissen, was es alles für Obst gibt da hätte ich mir einfach den Inhalt der Tabelle "Obst" genommen.
Jetzt muss ich halt in diese zweite Tabelle gehen und sagen, "Gib mir alle Row die zur Kategorie Obst gehören". Das sollte wohl gehen.