我有一个包含用户设置集的表,它具有以下列:
UserID INT
Set VARCHAR(50)
Key VARCHAR(50)
Value NVARCHAR(MAX)
TimeStamp DATETIME
UserID 与 Set 和 Key 一起是唯一的。因此,特定用户不能在一组特定设置中拥有两个相同的键。设置是按集合检索的,因此如果用户从某个集合中请求某个密钥,则会下载整个集合,这样下次需要同一集合中的密钥时,就不必去数据库了.
我应该在所有三列(userid、set 和 key)上创建一个主键,还是应该创建一个具有主键的额外字段(例如,一个名为 SettingID 的自动增量整数,我猜这是个坏主意),还是不创建一个主键键,只是创建一个唯一的索引?
- - - 更新 - - -
只是为了澄清一下:这是行表的结尾,无论如何它都没有加入。UserID 是用户表的 FK。Set 不是 FK。它几乎是我的 GUI 的辅助表。举个例子:用户第一次访问网站的某些部分时会得到一个帮助气球,如果他们愿意,他们可以关闭它。一旦他们点击它,我将在“GettingStarted”集中添加一些设置,表明他们的 helpballoon X 已被禁用。下次当用户访问同一页面时,该设置将声明不再显示帮助气球 X。