数据库设计,找不到适合的结构

时间:2014-10-22 17:31:39

标签: database database-design database-schema erd

假设我有以下数据:

玩家可以玩不同的迷你游戏。每个迷你游戏都有自己独特的数据,有些数据是相同的(杀戮,死亡,时间播放)。每个迷你游戏的其他数据不同(例如,在minigame1中打开胸部,在minigame2中打开箭头,......)

我希望为此创建一个良好的数据库结构。

我想在1个表中使用Player,在1个表中使用Minigame通用数据(名称,...)。但我无法找出包含每个迷你游戏的唯一数据的东西。

我想这样做的原因是因为我想为玩家制作统计页面,统计页面包含来自迷你游戏的所有数据。我想这样做而不需要大量的查询来保持性能尽可能好。

任何提示,提示和评论都表示赞赏。

1 个答案:

答案 0 :(得分:1)

这里有两个问题。首先是球员和小游戏之间的关系。除非我猜错,否则这对很多人来说都是如此。

第二种是将不同的小游戏分组到一个叫做迷你游戏的类中。这就像一个类/子类的情况,除了它是一个类/实例的情况。

首先处理第二个,查找“专业化/概括化”。这将为您提供有关如何分析游戏并提出概念模型的建议。然后查找“类表层次结构”,了解如何将此模型转换为表设计。

对于玩家和小游戏之间的基本关系,您将需要至少一个联结表来表示他们之间的多对多关系。您可能希望此联结表具有与一个或另一个游戏相关的所有专用数据的列,留下空白(NULL)与不相关的数据。这里存在效率问题,但更重要的是,当NULLS与选择标准发生冲突时,存在处理三值逻辑的问题。

如果您决定只使用一个表,请查找“单表继承”。

您的案例与典型的继承案例略有不同,因此您将不得不根据自己的情况调整技巧。