Umsetzung modularer Anforderungen
Carl
- datenbank
0 Ilja
Hallo,
Der Titel ist vielleicht etwas unverständlich, aber mir fällt kein besserer ein :).Ich denke schon seit ein paar Tagen über eine gute Lösung für einen Aufbau einer Datenbank nach. Die Anforderung wäre die folgende: Es soll dem Kunden sie Möglichkeit geboten werden aus einer großen Anzahl von Modulen ein Produkt zusammen zu stellen. Dazu wählt er ein Grundpaket und kann dann zu diesem verschiedene Optionen dazu wählen. Nachdem er die Auswahl getroffen hat, soll er auch später immer noch die Möglichkeit haben weitere Optionen dazu zu wählen oder Module auszutauschen. Das Ganze soll natürlich vollautomatisch funktionieren. Die Frage ist jetzt: wie setzt man das in einer Datenbank um. Die einzige sinnvolle Möglichkeit, die mir bisher eingefallen ist, war, dass für jede Kategorie von Modulen eine Datenbanktabelle erstellt wird und für die Pakete der Nutzer eine weitere in der dann die aktuelle Zusammensetzung durch Zuordnung von IDs gespeichert wird. Allerdings würde das dann wiederum bei jedem Aufruf des Kunden ziemlich viele Datenbankaufrufe bedeuten, was wiederum zu Lasten der Performance gehen würde. Kennt da jemand von euch vielleicht eine bessere Lösung?
Gruß
Carl
yo,
Die einzige sinnvolle Möglichkeit, die mir bisher eingefallen ist, war, dass für jede Kategorie von Modulen eine Datenbanktabelle erstellt wird und für die Pakete der Nutzer eine weitere in der dann die aktuelle Zusammensetzung durch Zuordnung von IDs gespeichert wird.
das ist keine gute idee, weil durch eine neue kategorie von modulen auch immmer eine neue tabelle angelegt werden müsste. grundsätzlich sollte man das ziel verfolgen, ein datenbank-design so zu gestalten, dass man nicht ständig das design verändern muss.
Kennt da jemand von euch vielleicht eine bessere Lösung?
am besten ist, du sammelst erst einmal alle wichtige informationen, die es in deinem design abzubilden gilt und bildest daraus deine entitäten. zum einen wären da die entität kunde, mit ihren jeweiligen attributen wie vorname, nachname, adresse, etc. dann sind auch die beziehungen der entitäten untereinander zu klären, also hat eine kunde immer nur ein grundpaket oder kann ein kunde auch mehrere gleichzeitig besitzen. wenn man will, kann man dann auch die tabellen normalisieren.
alles im allen ist zu sagen, dass du dir erst einmal genau im klaren sein musst, welche entitäten und attribute es gibt und im welchen verhältnis sie zueinander stehen. dann läßt sich mit sicherheit auch ein bessseres modell entwickeln.
Ilja