成就系统的数据库设计

时间:2015-09-11 21:02:39

标签: sql-server database

我刚刚开始学习数据库,因此我需要对数据库的设计提供一些帮助。我试图建立一个成就系统,我有点卡住,因为我担心我的设计不那么好。我提出了两个解决方案,第一个是在这里展示:link 1

基本上我有一个拥有一些ingameData的用户。他将播放的每一个游戏都有记录,因此我不需要像[xyz]这样的数据,其中xyz可以是任何属性,因为我可以得到那些有查询的人。我的问题在于另一方面。我有很多用户获得了许多成就。

到目前为止我学到的是你应该在你的多个关系表中总是有你的forigen键,所以我需要在我的2个解决方案中添加另一个表:Link 2。在这里,我有许多用户有一个成就表,许多成就属于一个成就表。这里我的连接错了吗?和/或我的设计真的有缺陷吗?这是我的第一个真正的数据库设计,所以我有点无能为力

1 个答案:

答案 0 :(得分:4)

模拟多对多的标准方法是引入链接表。您在用户和成就之间创建了一个链接。

传统上称为UserAchievement,它包含两列UserId和AchievementId,它们都是各自的表格。

获得成就后,您只需添加其他条目。