关系数据库理论和关键



我正在设计一个模式,在基于浏览器的游戏中保存玩家数据。

我有三个亲戚。其中两个至少有两个候选密钥,但第三个只有三个属性:{playerId、message、date}

这种关系将不包含唯一的行,因为存在1..1:0..*关系,这意味着每个玩家可以有任何数量的新闻元组。我不需要能够唯一地识别任何元组,而且没有一个属性可以是候选属性。

我的问题是:我理解关系模型规定不能有重复的元组,并且每个关系都必须有一个键。我上面的模式与这两个约束相矛盾,但符合我的目的。我知道我可以简单地添加一个唯一的索引属性(比如ID),但这似乎没有必要。我是不是错过了什么?

谢谢你抽出时间。

我认为您缺少的是组合主键

在您的情况下,如果要保存以不获得重复条目,则需要使用复合主键。

但想想看,同一个玩家在同一天发出了同样的信息。。。。在这种情况下,您将与复合主键发生冲突。一个虚拟的唯一id作为主键是一种节省开支的方法。

小问题!我没有一个明确的答案,但我认为如果你对整个元组没有至少一个唯一性约束,你可能会遇到麻烦:想象一下,某个应用程序横冲直撞,试图在你的表中插入1.000.00000倍的同一元组。。。

最新更新