Kombinationen in Datenbank abbilden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Kombinationen in Datenbank abbilden

    Ich habe ein Problem mit dem Design einer Datenbank. Konkret geht es darum Einzelteile zu kombinieren.

    Es ist aber nicht möglich alle Produkte entsprechend miteinander zu kombinieren, da dies teilweise technisch nicht möglich ist.

    Ein gutes Beispiel für so eine Anwendung ist auch ein Auto, dass ich mit verschiedenen Ausstattungsmerkmalen ausstatten kann die nicht kombinierbar sind.

    Meine erste Idee war eine Art Matrix in einer Tabelle anzulegen, die dann die Kombinationen enthält. (siehe pdf)

    Hier habe ich aber das Problem, dass ich bei jedem neuen Einzelteil eine Spalte anzügen muss. Hat jemand schon einmal so etwas gelöst bzw. eine Idee für mich ?

    Vielen Dank.
    Angehängte Dateien

  • #2
    Die Matrixidee ist doch gut!?

    Szenario:
    A kann mit B kombiniert werden, aber nicht mit C.

    Schema:
    teil(id, name, ...)
    kombi(teil.id, teil.id)

    Kardinalität:
    Für jedes Teil ein Datensatz in teil (im Bsp. also 3).
    Für jede mögliche Kombination einer in kombi (im Bsp. 1).

    Das ist fast schon minimalistisch, eine bessere Idee wird es kaum geben.

    Kommentar


    • #3
      Im Prinzip ja...

      bei den lustigen Autokonfiguratoren gibt's ja immer aberwitzige Kombinationen:

      Autoradio mit DVD-Navigationssystem gibt's wahlweise auch mit Scheinwerferwaschanlage und beheizten Außenspiegeln, aber nicht nur mit Scheinwerferwaschanlage.
      Die Waschanlage kriegst du aber auch einzeln (also ohne DVD-Navi und ohne beheizte Außenspiegel)

      Viel Spaß beim Abbilden...


      Du bräuchtest mindestens 3 Tabellen:

      teil(teil_id, teil_name, ...)
      kombi(kombi_id, kombi_name, ...)
      kombi_teile(kombi_id, teil_id, muss_teil)
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        das scheint mir auch der richtige Ansatz zu sein.

        Ich werde mal versuchen das vernünftig umzusetzen und werde meine Lösung dann bei Gelegenheit hier posten.

        Danke für Euere Hilfe.

        Kommentar


        • #5
          vielleicht ist es auch ein Ansatz für Dich einfach nur das abzubilden, was nicht erlaubt ist.
          Alles andere ist eben erlaubt. So musst Du nicht jede mögliche kobination pflegen sondern nur jene die sich ausschliessen.
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar

          Lädt...
          X