ich eine Tabelle mit Sätzen von Einstellungen für Benutzer haben, hat es die folgenden Spalten:SQL: Zum Primärschlüssel oder nicht zum Primärschlüssel?
UserID INT
Set VARCHAR(50)
Key VARCHAR(50)
Value NVARCHAR(MAX)
TimeStamp DATETIME
UserID zusammen mit Set und Key sind einzigartig. So kann ein bestimmter Benutzer in einem bestimmten Satz von Einstellungen nicht zwei gleiche Schlüssel haben. Die Einstellungen werden von set abgerufen. Wenn also ein Benutzer einen bestimmten Schlüssel aus einem bestimmten Satz anfordert, wird der gesamte Satz heruntergeladen, so dass beim nächsten Mal, wenn ein Schlüssel aus demselben Satz benötigt wird, er nicht zur Datenbank gehen muss .
Sollte ich einen Primärschlüssel für alle drei Spalten (Benutzer-ID, Satz und Schlüssel) erstellen oder ein zusätzliches Feld erstellen, das einen Primärschlüssel hat (z. B. eine Autoincrement-Ganzzahl namens SettingID, schlechte Idee, ich denke), oder nicht einen Primärschlüssel erstellen und nur einen eindeutigen Index erstellen?
----- ----- UPDATE
nur Dinge zu klären: Dies ist ein Ende der Leitung Tabelle, ist es nicht in irgendeiner Weise verbunden sind. Benutzer-ID ist ein FK für die Tabelle Benutzer. Set ist kein FK. Es ist so ziemlich eine Hilfstabelle für meine GUI. Nur als ein Beispiel: Benutzer erhalten das erste Mal, dass sie Teile der Website besuchen, eine Hilfe Sprechblase, die sie schließen können, wenn sie wollen. Sobald sie es wegklicken, werde ich einige Einstellungen zum "GettingStarted" Set hinzufügen, das besagt, dass helpballoon X deaktiviert wurde. Wenn der Benutzer das nächste Mal auf dieselbe Seite kommt, wird in der Einstellung angegeben, dass die Hilfe-Sprechblase X nicht mehr angezeigt werden soll.
Sie sagen, dies ist eine Tabelle "Einstellungen". Können wir annehmen, dass diese Tabelle eine "Ende der Zeile" -Tabelle ist und der Schlüssel, den Sie in dieser Tabelle haben, nicht als Fremdschlüssel in anderen Tabellen verwendet wird? – Jonathan
Achtung: Sie haben immer noch konzeptionell einen Join: den Join zur GUI. Daher können die Risiken natürlicher Primärschlüssel weiterhin bestehen. –