Datenbankkonzept: Richtige oder falsche Normalisierung?

Diskutiere mit über: Datenbankkonzept: Richtige oder falsche Normalisierung? im Datenbanksysteme für das Web Forum

  1. 2nd

    2nd Thread Starter MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    Registriert seit:
    25.07.2004
    Moin,

    ich habe 3 Tabellen mit Inhalten:

    1. Artikel mit: ArtikelID, Name, Preis
    2. Gruppen mit: GruppenID, Gruppenname
    3. Untergruppen mir: UntergruppenID, Untergruppenname

    Diese Tabellen setze ich per ID in Relation zueinander mit jeweils einer Verknüpfungstabelle:

    1. Artikel <-> Gruppen = Artikel_Gruppen mit: ArtikelID, GruppenID

    2. Artikel <-> Untergruppen = Artikel_Untergruppen mit: ArtikelID, UntergruppenID


    Also insgesamt 5 Tabellen.

    Richtiges Konzept?

    Danke für Hilfe,

    2nd
     
  2. ThaHammer

    ThaHammer MacUser Mitglied

    Beiträge:
    3.276
    Zustimmungen:
    13
    Registriert seit:
    01.06.2004
    Wäre es nicht logischer UntergruppenID <-> GruppenID und ArtikelID <-> UntergruppenID?
     
  3. 2nd

    2nd Thread Starter MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    Registriert seit:
    25.07.2004
    Da die Untergruppen bestimmten Gruppen zugeteilt sind: jo.

    Aber wie realisiere ich das denn bzgl. der Tabellen? So hier?

    Artikel_Gruppen_Untergruppen mit: ArtikelID, GruppenID, UntergruppenID

    Also 3 Fremdschlüssel in einer Tabelle und damit nur 4 Tabellen?

    Hmm, glaube schon oder :kopfkratz: & :kopfrauch:

    2nd
     
  4. msslovi0

    msslovi0 MacUser Mitglied

    Beiträge:
    2.713
    Zustimmungen:
    115
    Registriert seit:
    20.03.2005
    Mir ist nicht so ganz klar, warum du Gruppen und Untergruppen aufteilst auf zwei Tabellen.

    Ich würde hier mit einer Tabelle für die Artikel, einer für die Gruppen und einer Kreuztabelle arbeiten. Die Informationen, welche Gruppe Vater bzw. Kind von welcher anderen Gruppe ist, kannst du ja direkt in der Gruppentabelle ablegen.

    Matt
     
  5. Pinacolada

    Pinacolada MacUser Mitglied

    Beiträge:
    419
    Zustimmungen:
    40
    Registriert seit:
    26.04.2005
    jup, ich würde hierbei wie folgt vorgehen:

    Gruppe: Gruppen_id, name, parent_gruppen_id
    artikel: artikel_id, etc.

    wenn ein artikel in mehreren gruppen sein soll, dann natürlich noch eine 3. tabelle mit den beiden fremdschlüsseln - ansonsten direkt in die tabelle artikel packen.
     
  6. 2nd

    2nd Thread Starter MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    Registriert seit:
    25.07.2004
    Also in der Gruppentabelle 4 Attribute erzeugen?

    id, gruppenname, untergruppenname , id_to_parent

    Und wenn id_to_parent leer ist, ist es automatisch eine Elterngruppe? Ich bau auch die Menus aus den Datensätzen, deswegen brauche ich die Differenzierung.

    2nd
     
  7. 2nd

    2nd Thread Starter MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    Registriert seit:
    25.07.2004
    Ok, stimmt, ich muss gar nicht zwischen Untergruppe und Gruppe differenzieren, das macht der parent_gruppen_id.

    Und meien Bezug zum Artikel bau ich in die Artikeltabelle ein, also 2 zusätzliche Attribute: parent_gruppen_id und child_gruppen_id als Fremdschlüssel auf die Gruppentabelle?

    EDIT: Ich weiss das noch nicht genau, wo die Artikel überall stehen sollen, also werde ich parent_gruppen_id und child_gruppen_id mit einer artikel_id in eine 3. Tabelle tun, richtig? Also 3 Fremdschlüssel in einer Tabelle (artikel, gruppe, untergruppe)?

    2nd
     
  8. Pinacolada

    Pinacolada MacUser Mitglied

    Beiträge:
    419
    Zustimmungen:
    40
    Registriert seit:
    26.04.2005

    nein, du speicherst einfach die gruppe - in der sich das produkt befindet. Wozu sollte denn auch die parent_gruppen_id mitgespeichert werden? - solche daten können nämlich bei späteren änderungen (untergruppe wird verschoben) extreme probleme verursachen
     
  9. msslovi0

    msslovi0 MacUser Mitglied

    Beiträge:
    2.713
    Zustimmungen:
    115
    Registriert seit:
    20.03.2005
    Was willst du mit dem Gruppennamen und dem Untergruppennamen?

    Ich hab früher auch viel rumexperimentiert mit Tabellen für Kategorien etc. Aber mit mehreren Tabellen nimmst du die die Flexibilität, wenn du mal eine Unterkategorie unterhalb der Unterkategorie brauchst.
    Deswegen arbeite ich mittlerweile nur noch mit einer Tabelle, die als Nested Set aufgebaut ist. Das ist IMHO die einfachste uns sauberste Lösung.

    Matt
     
  10. 2nd

    2nd Thread Starter MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    Registriert seit:
    25.07.2004
    Moment, ich bin ein bisschen langsamer als Ihr :)

    D. h. ich speichere in der Artikeltabelle den Namen als String (Varchar) von der Gruppe und Untergruppe in 2 Extraspalten? Und wenn man mal eine Gruppe umbenennt muss man alle Gruppennamen in der Artikeltabelle umbenennen :kopfkratz:

    @matt: Jo, habs schon verstanden...


    2nd
     
    Zuletzt bearbeitet: 08.09.2006
Die Seite wird geladen...
Ähnliche Themen - Datenbankkonzept Richtige oder Forum Datum
Mysql - Duplicates abfangen, mit php oder mit unique keys? Datenbanksysteme für das Web 08.03.2016
Xampp oder Mamp? Datenbanksysteme für das Web 17.12.2011
utf8_bin oder utf8_unicode_ci Datenbanksysteme für das Web 03.10.2008
PHPGroupware >kostenlos (>mit Installer oder deutsch) Datenbanksysteme für das Web 21.12.2005

Diese Seite empfehlen

Benutzerdefinierte Suche