ich die 5 Arten untersucht haben, die hereWie eine Tabellenhierarchie für Aufträge mit verschiedenen Produkten entwerfen Parameter
ich immer noch Probleme erwähnt wurden eine bin zu finden in eine neue DB-Design zu implementieren Ich schaffe. Jeder der erwähnten Wege hat seine Vor- und Nachteile und die Nachteile waren nicht für meine Bedürfnisse geeignet.
Ich werde kurz erklären, was ich brauche. Mein Unternehmen hat Abteilungen und jede Abteilung hat Kategorien (ich Listing nur ein paar für ein Beispiel):
Videobearbeitung (VE) cat 1: Veranstaltungen Katze 2: Clips cat 3: Produktion
Graphic Design (GD) cat 1: Digital Alben cat 2: Fotomanipulation cat 3: Foto-Retusche
Wie Sie sehen können, jedes Produkt hat ganz andere Attribute.
Ab sofort habe ich eine Excel-Datei für jede Abteilung, wo jede Datei Registerkarten für alle Clients hat (weshalb ich eine DB mache).
Auf meiner Website hat jetzt jede Kategorie ein Bestellformular, das für die Attribute in dieser Kategorie entwickelt wurde. Ich habe Probleme, dies in eine ORDERS-Tabellenhierarchie zu implementieren.
Wie Sie in meinem Screenshot sehen können (ignorieren Sie die Namensgebung ... Ich habe "Attribute" verwendet, damit Sie sehen können, was es ist. Ich werde das kurz in "att" ändern. Ich auch nur einige grundlegende Spalten zum Testen erstellt) Die vier richtigen Tabellen sehen aus, wie die ORDER FORMS heute aussehen, wenn Kunden Produkte aus diesen Kategorien bestellen. Also, wenn Sie darüber nachdenken, sollten sie eine One-to-One-Beziehung mit der Tabelle ORDER_DETAIL sein (wie ich zu einem von ihnen in dem Screenshot), weil Sie nur eine Reihe von diesen in einer Bestellung haben können. Aber ein Problem, das ich dachte, ist, dass der Name "order_detailsID" nicht übereinstimmt und ich habe gelernt, dass Relation Keys die gleichen Namen haben sollten ... und ich kann die PK's "order_detailsID" der Attributtabelle nicht nennen, weil das nicht was ist es ist ... es sind Attribute.
Vielleicht sind meine ORDERS und ORDERS_DETAILS falsch ... Ich weiß es nicht. Ich brauche Hilfe, um herauszufinden, wie Kunden in die Lage versetzt werden, ein Produkt zu bestellen, und darauf basierend, um die entsprechende Attributtabelle zum Ausfüllen einer Zeile zu erhalten.
(und natürlich der FK „order_detailsID“ Feld in den att-Tabellen werden nicht verwendet, da ich nicht wusste, ob ich sie benötigen.)
Was würden Sie vorschlagen?
Klicken Sie auf HERE für große Originalqualität von Screenshot.
[quote] "Dies wird funktionieren, da die Tabelle order_details keinen Fremdschlüssel zurück in die Attributtabelle haben muss, so dass Sie keinen künstlichen Überhang benötigen, um diese Beziehung aufrechtzuerhalten." [/ quote] Aber ich möchte nicht, dass der Benutzer in der Lage ist, mehrere Attribute in einer Reihenfolge zu bestellen ... also ist es richtig zu sagen, dass dies eine Eins-zu-Eins-Beziehung sein kann (und sollte)?(zwischen den Bestelldetails und -attributen) Vielen Dank für die ausführliche Antwort –
@ZviTwersky - Für eine Bestellung zu einem Attribut können Sie keine eindeutige Einschränkung für mehrere Tabellen erzwingen. Da Sie eine Details-zu-Reihenfolge-Beziehung wünschen, wäre es sinnvoller, die Bestell-ID in Ihren Attributen mit einem Fremdschlüssel zu versehen. Sie können eine Auslöseprozedur verwenden, um sicherzustellen, dass der Eintrag, den Sie einfügen/aktualisieren, in anderen Attributtabellen nicht vorhanden ist. Alternativ können Sie die vier Tabellen zu einer zusammenführen, dann eine Spalte verwenden, um einen der vier benötigten Typen zu identifizieren, und die Daten an den entsprechenden Typ in Ihrer Anwendung übergeben. – Nomenator