数据库架构问题

时间:2011-08-25 08:17:54

标签: database-design

我有桌子

  • USERS,
  • CLUBS(id, creator_id, name, description
  • MONOPOLY(id, results
  • 风险(id, results, risk_specific_field

关系是:

  • USERS n:n CLUBS //我们之间的实体很弱
  • CLUBS 1:n MONOPOLY
  • CLUBS 1:n RISK

用户创建朋友俱乐部并邀请他们到该俱乐部玩不同的游戏(Monopoly,RIsk)。

如果游戏是例如垄断然后GameMonopoly表之间应该有关系。我认为在Games/MonopolyGames/Risk之间创建弱实体会起作用,但我很困惑这种方法是否合适,因为弱实体用于打破N:N关系,这些关系是1:n(一个游戏涉及1行Monopoly表和Monopoly到N行Game表)。此外,这种方法还允许我们的应用程序使用自己的表格等添加新类型的游戏。

如果唯一类型的游戏是Monopoly我会在我的Games表格中添加字段 id_monopoly ,那就是它,但是因为我的应用有{{1}我也不能这样做。

天哪,我希望我清楚这里有什么问题:)

2 个答案:

答案 0 :(得分:1)

enter image description here

答案 1 :(得分:0)

如果我理解正确,你要找的是多态关联。

您可以对其进行概括并添加两个字段,而不是仅添加id_monopoly,例如:

id_gametype_game - 其中id_game是垄断或风险的“外键”,type_game是“垄断”或“风险”。

这里的问题是你需要一些应用程序逻辑来在适当的表中查找id,这可能会变得复杂,但希望这对你的情况有所帮助。