【问题标题】:Database design, can't find suiting structure数据库设计,找不到合适的结构
【发布时间】:2014-12-18 06:16:00
【问题描述】:

假设我有以下数据:

玩家可以玩不同的小游戏。每个小游戏都可以有自己独特的数据,有些数据是相同的(杀戮、死亡、游戏时间)。每个小游戏的其他数据都不同(例如,在小游戏 1 中打开的箱子,在小游戏 2 中发射的箭,...)

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

我想将玩家放在 1 个表中,将 Minigame 一般数据(名称,...)放在 1 个表中。但我无法找出包含每个迷你游戏的独特数据的东西。

我想这样做的原因是因为我想为玩家制作一个统计页面,该统计页面包含来自迷你游戏的所有数据。我想在没有大量查询的情况下执行此操作以尽可能保持性能。

感谢任何提示、提示和 cmets。

【问题讨论】:

    标签: database database-design database-schema erd


    【解决方案1】:

    这里有两个问题。首先是玩家与小游戏的关系。这是多对多,除非我错过了我的猜测。

    第二个是将不同的小游戏分组到一个类中,称为小游戏。这就像一个类/子类案例,除了它是一个类/实例案例。

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

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

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

    您的案例与典型的继承案例略有不同,因此您必须调整技术以适应您的案例。

    【讨论】:

    • 您好,感谢您的回复。在我阅读了您的帖子后,我决定使用多个表格,1 for ever minigame,其中包含该迷你游戏和玩家的数据。单表继承会给我留下太多 NULL 值
    猜你喜欢
    • 1970-01-01
    • 2017-03-14
    • 2011-01-13
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 2021-08-10
    相关资源
    最近更新 更多