Wie wird eine dynamische Selbstreferenzierung der Viele-zu-Viele-Beziehung aufgebaut?Dynamische Selbstreferenzierung von Viele-zu-Viele-Beziehung
Ich habe ein Problem, das ich nicht überwinden kann.
Ich habe Tabellen:
Types:
id
name
Products:
id
name
type_id
product_products
parent_id
child_id
Nehmen wir an, dass wir mehrere Produkte in der Produkttabelle haben. Einige von ihnen sind:
(Name nicht relevant ist)
CB1234 - products.type_id -> cardboard
CBB999 - products.type_id -> cardboardbox
CBP321 - products.type_id -> paper
TSH123 - products.type_id -> tshirt
FAB321 - products.type_id -> fabric
THR321 - products.type_id -> thread
Jetzt möchte ich, dass product_product Beziehung sagen, dass ich cardboardbox haben, die aus Pappe und Papier Arten von Produkten hergestellt wird. In Pappkarton-Karton und Pappkarton-Papier-Beziehung möchte ich definieren, wie viel Prozent des Produkts verwendet wird (Konsistenz), um Pappkarton Produkt zu machen (sagen wir 80/20, nicht relevant)
Ich habe verschiedene Fälle für verschiedene Produkte. Jetzt möchte ich die Beziehung zwischen T-Shirt-Stoff und T-Shirt-Faden definieren, aber statt Konsistenz möchte ich Stoff- und Fadenkosten für dieses Produkt definieren.
Die Anzahl der Produkte und Produktparameter ist nicht festgelegt. Es könnte 500 verschiedene Produkte und verschiedene Beziehungen zwischen ihnen geben. Was sind gute Praktiken für dieses Problem? Es gibt nur wenige Möglichkeiten, die ich kam mit
- Viele handgemachte many-to-many-Beziehung Tabellen
- Viele, viele Spalten Tabelle product_product
In beiden Fällen gibt es Dinge, die ich don Ich mag das Design nicht, aber vielleicht sind das die richtigen Methoden, und vielleicht habe ich meine Datenbank von Anfang an falsch gemacht.
Vielen Dank für Ihren Kommentar. Ich denke, dass Sie Recht haben könnten. "Was ist die endgültige Verwendung, welche Art von Fragen möchten Sie die Daten fragen?" - Antwort ist alle von ihnen. Ich weiß nicht, wie viel oder welche Art von Fragen in Zukunft kommen könnte. Deshalb muss es so dynamisch wie möglich sein. –
Eine sehr generische Option wäre etwa eine product_relationship-Tabelle mit einem relationation_type, aber ich denke, dass die Verwendung einer Tabelle für viele Beziehungen der Funktionsweise relationaler Datenbanken entgegensteht und nur Probleme aufhält. Ein klarer Zweck für jede Tabelle (entweder ein "Objekt" oder eine Beziehung zwischen Objekten) ist die Art, Dinge zu tun. –