Ich habe eine Tabelle mit einem zusammengesetzten Primärschlüssel (bestehend aus 4 Spalten), mit der sichergestellt wird, dass keine Duplikate in die Tabelle eingegeben werden. Ich benötige jetzt eine neue Tabelle, die die Schlüssel in dieser Tabelle als Fremdschlüssel referenzieren muss.
Meine Frage ist, welcher Ansatz für Suchgeschwindigkeiten effizienter ist:
1) Erstelle ich die neue Tabelle mit allen 4 Spalten und referenziere sie alle in einem Fremdschlüssel?
oder
2) Erstelle ich eine neue Identitätsspalte in der Primärschlüsseltabelle und verwende diese als Fremdschlüssel in der neuen Tabelle.
Diese Datenbank wird voraussichtlich eine sehr große Datenmenge enthalten, daher habe ich sie bis jetzt aufgebaut, um die in jeder Tabelle enthaltene Datenmenge zu minimieren. Vor diesem Hintergrund ist Option 2 der beste Ansatz, da ich 2 int-Spalten und eine datetime-Spalte für jede Zeile speichere, aber ich möchte vermeiden, die Nachschlagezeit zu erhöhen, wenn dies nicht erforderlich ist.
INT IDENTITY
in einem solchen Fall fast immer einen Ersatzschlüssel (z. B. einen ) verwenden - das Referenzieren und Zusammenfügen dieser Tabelle ist sooooo viel einfacher. Um Duplikate zu vermeiden, legen Sie eine UNIQUE- Einschränkung für diese vier Spalten fest. Außerdem: Aus Performancegründen sind schmale Primärschlüssel viel besser (wenn sie als Clustering-Schlüssel verwendet werden)