ユーザーの設定のセットを含むテーブルがあり、次の列があります。
UserID INT
Set VARCHAR(50)
Key VARCHAR(50)
Value NVARCHAR(MAX)
TimeStamp DATETIME
UserID と Set および Key は一意です。そのため、特定のユーザーが特定の設定セットで同じキーを 2 つ持つことはできません。設定はセットごとに取得されるため、ユーザーが特定のセットから特定のキーを要求すると、セット全体がダウンロードされるため、次に同じセットのキーが必要になったときにデータベースにアクセスする必要はありません。 .
3 つの列すべて (ユーザー ID、セット、およびキー) に主キーを作成する必要がありますか、または主キーを持つ追加のフィールドを作成する必要があります (たとえば、SettingID と呼ばれる自動インクリメント整数、悪い考えです)、または主キーを作成しないでください。キーを作成し、一意のインデックスを作成するだけですか?
- - - アップデート - - -
わかりやすくするために、これは行末テーブルであり、結合されていません。UserID は、Users テーブルの FK です。セットは FK ではありません。私のGUIのヘルパーテーブルです。例として、ユーザーが Web サイトの一部に初めてアクセスすると、必要に応じて閉じることができるヘルプ バルーンが表示されます。クリックして離れたら、"GettingStarted" セットにいくつかの設定を追加し、バルーン X が無効になっていることを示すようにします。次にユーザーが同じページにアクセスすると、ヘルプ バルーン X が表示されないように設定されます。