MSSQL Werte referenzieren
-
Hi,
ich möchte in einer meiner Tabelle gerne Werte aus anderen Tabellen Referenzieren. Ich habe beispielsweise zwei Tabellen, in denen die Einträge jeweils eindeutig über die Spalte ID identifiziert werden. In einer dritten Tabelle möchte ich jetzt mal TableA.ID=5 referenzieren und mal TableB.ID=17. Über Foreign Keys kann ich ja immer nur die Einträge einer Tabelle referenzieren...
-
Hallo,
wieso? Wenn du zwei Columns hast kannst du durchaus auch zwei FKeys zur Referenzierung verwenden. Ich bin mir jetzt nur nicht sicher ob ein "echter" FK NULL sein darf?! Wenn nicht, nutz du halt einfach das Prinzip der Kreuztabelle.
VlG
-
Ich möchte mich aber auf die Anzahl der referenzierten Tabellen nicht festlegen. Und dann immer eine Spalte hinzufügen... wär halt die Notlösung.
-
Hallo,
es macht aber keinen Sinn ein uns das selbe Feld für mehrere Tabellen zu verwenden! Dafür brauchst du mindestens die Kombination aus zwei PK's (id und Wert)! Beispiel Webshops:
id Shop
101 xxx
101 yyy
102 xxx
103 xxx
104 yyy
104 xxxIch hoffe du verstehst was ich meine? Du solltest in einem zweiten Feld kennzeichnen zu welchem Key das jeweils erste Feld gehört...
VlG
-
Mein Wunsch wär ja eine referenz, die den Weg (also die Tabelle) gleich mit speichert. Wäre aber nicht schlimm, wenn es zwei Spalten werden. Aber wenn ich das richtig sehe, würde die zweite Spalte dann die Tabelle enthalten. Tue ich das dann nur manuell, oder weiß die Datenbank auch, was ich da tue?
-
Die Datenbank weiss nicht was du tust, zumindest MSSQL kann das nicht.
Bist du sicher dass dieses Datenmodell überhaupt Sinn macht?Bzw. anders gefragt: wieso willst du überhaupt solche Verweise verwenden?
-
Ich will eine History anlegen, mit alter Wert, neuer Wert und am bequemsten wäre noch eine Referenz auf dem Eintrag...