ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
1391
1391
EMPFEHLEN
-
16.07.04 10:50 #1
- Registriert seit
- Jul 2004
- Beiträge
- 1
Wie kann ich eine n:m-Beziehung in mySQL implementieren. Ich hab (in etwa) folgendes:
Es gibt Restaurants(name, adresse,..., kategorien) und Kategorien. Jedes Restaurant gehört zu mehreren Kategorien (0, 1...) und in jeder Kategorie befinden sich mehrere (0, 1,...) Restaurants.
Wie kann ich diese Struktur auf eine mySQL-Datenbank abbilden?
Bitte um Hilfe. thx
--martin
-
16.07.04 11:04 #2
- Registriert seit
- Jan 2004
- Ort
- Paderborn
- Beiträge
- 1.210
Das kannst du nur machen indem du dir eine Zwischentabelle anlegst. Anders ist es bei relationalen Datenbanken nicht zu empfehlen.
So würde das dann z.B. aussehen:
tblRestaurant
restaurant_id... (PK)
tblRestaurantKategorie
restaurant_id (FK von restaurant_id)
kategorie_id (FK von kategorie_id)
tblKategorie
kategorie_id (PK)
....Geändert von Julian Maicher (16.07.04 um 11:51 Uhr)
-
16.07.04 11:14 #3
suye: Warum soll das nicht gehen? Mach einfach zwei Tabellen:
tblRestaurans
id
...
kategorien
tblKategorien
id
...
In der Spalte kategorien befinden sich nun alle Kategorien, zu denen das Restaurant gehört, getrennt durch einen Separator (z. B. &). Jetzt kannst du mit einer Scriptsprache deines Vertrauens alles auslesen, was du möchtest, die Redundanzfreiheit ist gegeben und du hast trotz allem nur zwei Tabellen.
-
16.07.04 11:22 #4
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo!
Das ist IMHO keine gute Idee. Ich denke man sollte schon die Möglichkeiten die eine Datenbank anbietet auch nutzen. Wenn du das ganze auf deine Art machen würdest könntest du wohlmöglich deine Datenbank unterlaufen in Sachen Constraints (Gültigkeitsregeln etc....)In der Spalte kategorien befinden sich nun alle Kategorien, zu denen das Restaurant gehört, getrennt durch einen Separator (z. B. &). Jetzt kannst du mit einer Scriptsprache deines Vertrauens alles auslesen, was du möchtest, die Redundanzfreiheit ist gegeben und du hast trotz allem nur zwei Tabellen.
Deshalb nimm besser die Mapping Tabelle die die m-n Relation auf
zwei 1-n Relationen aufsplittet. Dieser Ansatz ist der Gängiste und hat sich bewährt.
Gruß Tom
-
16.07.04 12:57 #5Das Speichern von mehreren Werten in einem Eigenschaftsfeld ist übrigens nicht im Sinne der Normalisierung.In der Spalte kategorien befinden sich nun alle Kategorien, zu denen das Restaurant gehört, getrennt durch einen Separator (z. B. &). Jetzt kannst du mit einer Scriptsprache deines Vertrauens alles auslesen, was du möchtest, die Redundanzfreiheit ist gegeben und du hast trotz allem nur zwei Tabellen.MfG
Gorcky
Ähnliche Themen
-
MySql - Frage zu n:m Beziehung
Von CPoly im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 09.09.10, 14:53 -
MySQL, Problem mit 1:n Beziehung.
Von bgauch im Forum Relationale DatenbanksystemeAntworten: 25Letzter Beitrag: 04.05.10, 15:42 -
Beziehung mysql 1:n
Von Fruitgum im Forum Relationale DatenbanksystemeAntworten: 10Letzter Beitrag: 04.11.09, 11:14 -
[MySQL] n-zu-n Beziehung
Von RedWraith im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 19.04.08, 01:54 -
n zu m Beziehung in MySQL
Von mC pAiN im Forum Relationale DatenbanksystemeAntworten: 6Letzter Beitrag: 28.01.04, 09:10





Zitieren

Login





