In meiner Situation, ich habedb design: Zwei "1 zu viele" Beziehung?
TABLE vehicles (
id int(11) NOT NULL AUTO_INCREMENT,
transaction_type varchar(45),
PRIMARY KEY (`id`)
/* all other values of vehicle */
)
TABLE Origination(
id int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
)
TABLE Additions(
id int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
)
So habe ich diese neue Fahrzeuge Tabelle, die entweder aus Origination oder Ergänzungen stammen. Der Grund, warum es von zwei Tabellen kommen kann, ist geschäftliche Bedürfnisse, es entspringt entweder der Herkunft oder es kommt aus einer speziellen Ergänzung nach der Tat. Ich bin mir nicht sicher, wie man eine "Fahrzeug" -Relation mit beiden Tabellen verbindet, da die ID von beiden kommen kann.
Also habe ich ein transaction_type-Feld hinzugefügt, wobei, wenn Typ "Additions" Join-Tabellen basierend auf Additions-ID ist. Sonst, wenn der Typ "Origination" ist, treten Sie der Ursprungs-ID bei. So habe ich eine Zwei-Tasten- "1 zu viele" Beziehung. Ist das eine gültige und brauchbare Designpraxis? Ich bin keine Datenbankperson, aber ich versuche zu lernen, wie man damit umgeht, ist der beste Weg.
Von dem, was ich von der Frage verstehe ... kann es am besten 2 verschiedene Vermittler Tabellen haben: vehicles_Origination und vehicles_Additions die drei Tabellen zu verbinden. Ich bin mir nicht sicher, ob Sie danach suchen. vehicles_Origination würde vehicle_id und origination_id haben und Sie würden in diesem Fall den transaction_type nicht brauchen, was gut ist; Ich denke, das ist gegen Design-Standard. –
@JohnCullen Ja, das war meine zweite Strategie, es gab 2 Beziehungstabellen, die auch die anderen verbinden. Ich dachte, es könnte verworren sein, mehrere Tabellen als solche zu haben, aber es würde auch funktionieren. Ich möchte die Tabellen in einem Best-Practice-Sinne oder optimal verbinden. Ich weiß, dass das Design nicht das Beste ist, aber es ist irgendwie was ich festhalte. – ThePirateBae
@JohnCullen Eigentlich halb verwirrt auf diesem. Also hätte ich Vehicle_Additons Tabelle und Vehicle_origination Tabelle anstelle der Fahrzeugtabelle korrekt? Und dann verbinden sich diese IDs mit Hinzufügungen und Originationstafeln, anstatt sie zu verbinden, als die beiden zu einer Fahrzeugtabelle zu verknüpfen. – ThePirateBae