0

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

我有三个关系。其中两个至少有两个候选键,但是第三个只有三个属性:{playerId, message, date}

由于存在 1..1:0..* 关系,因此该关系不会包含唯一的行,这意味着每个玩家可以有任意数量的新闻元组。无论如何,我不需要能够唯一地识别任何元组,并且没有一个属性实际上可以成为候选者。

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

谢谢你的时间。

4

2 回答 2

1

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

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

但是想想同一个玩家在同一个日期发送相同的消息......在这种情况下,您将与复合主键发生冲突。将虚拟唯一 ID 作为主键是一种更省钱的方式。

于 2011-06-23T12:33:00.017 回答
0

棘手的问题!我没有明确的答案,但我认为如果您对整个元组至少没有唯一性约束,您可能会遇到麻烦:想象一些应用程序运行异常并尝试插入 1.000.000.000 次相同的元组你的桌子...

于 2011-06-23T12:32:55.717 回答