tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
1391
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    mschneider mschneider ist offline Grünschnabel
    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
     

  2. #2
    Julian Maicher Julian Maicher ist offline Mitglied Smaragd
    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)
     

  3. #3
    Avatar von SilentWarrior
    SilentWarrior SilentWarrior ist offline Mitglied Diamant
    Registriert seit
    Dec 2001
    Beiträge
    3.078
    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.
     

  4. #4
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    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.
    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....)

    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
     

  5. #5
    Avatar von Gorcky
    Gorcky Gorcky ist offline Mitglied Brokat
    Registriert seit
    May 2004
    Ort
    n. Bad Bramstedt (Schleswig-Holstein)
    Beiträge
    351
    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.
    Das Speichern von mehreren Werten in einem Eigenschaftsfeld ist übrigens nicht im Sinne der Normalisierung.
     
    MfG
    Gorcky

Ähnliche Themen

  1. MySql - Frage zu n:m Beziehung
    Von CPoly im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 09.09.10, 14:53
  2. MySQL, Problem mit 1:n Beziehung.
    Von bgauch im Forum Relationale Datenbanksysteme
    Antworten: 25
    Letzter Beitrag: 04.05.10, 15:42
  3. Beziehung mysql 1:n
    Von Fruitgum im Forum Relationale Datenbanksysteme
    Antworten: 10
    Letzter Beitrag: 04.11.09, 11:14
  4. [MySQL] n-zu-n Beziehung
    Von RedWraith im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 19.04.08, 01:54
  5. n zu m Beziehung in MySQL
    Von mC pAiN im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 28.01.04, 09:10