Ich definiere eine Datenbank für ein Kunden-/Bestellsystem, wo es zwei sehr unterschiedliche Arten von Kunden gibt. Weil sie so unterschiedlich sind, wäre eine einzelne Kundentabelle sehr hässlich (sie wäre voller Nullspalten, da sie für einen Typ sinnlos sind).Mehrere Fremdschlüssel zu einer einzigen Spalte
Ihre Bestellungen sind jedoch im selben Format. Ist es möglich, eine CustomerId
Spalte in meiner Bestellungstabelle zu haben, die einen Fremdschlüssel für beide Kundentypen hat? Ich habe es in SQL Server eingerichtet und es gibt mir keine Probleme erstellen die Beziehungen, aber ich bin noch zu versuchen, irgendwelche Daten einfügen.
Auch ich plane nHibernate als das ORM zu verwenden, könnte es irgendwelche Probleme geben, die eingeführt werden, indem man die Beziehungen so macht?
Einverstanden. Normalisierung ist der Schlüssel hier. – jva
@Guffa: -1 weil "Nein, Sie können nicht ein einzelnes Feld als Fremdschlüssel für zwei verschiedene Tabellen haben" - diese Aussage ist falsch (zumindest auf SQL Server 2005). Mach einen Wirbel. – Liao
@Liao: Ich glaube nicht, dass Sie die Situation verstehen ... Wenn Sie zum Beispiel den Fremdschlüsselwert 42 haben, wie würden Sie wissen, ob es der Schlüssel in Tabelle A oder Tabelle B ist? – Guffa