1

我想设计一个数据库来存储填字游戏,主要是我有2个表:问题表,网格表,

问题表(q_id, question , answer...) 网格表(g_id, name, ....)

当我将问题表与网格表联系起来时,我在想一个好方法,

Questions_Grid(q_id, g_id),这对是主键,

我老板建议的另一个解决方案:Grids Table (g_id, q_ids, ....) q_ids 存储此网格中使用的问题的所有 id

哪一个更好?如果你有更好的选择?

4

4 回答 4

2

看起来您老板的建议是将问题 ID 列表存储为网格表中的文本列。如果我理解您的要求并且确实如此,那么第一个当然要好得多,因为它已标准化。在您的方案中,您可以进行许多有用的查询,这些查询在您老板的方案中可能会变得混乱或不可能(如果可能的话,速度会很慢)。

于 2012-04-05T13:13:43.820 回答
1

第一个选项更好,这样您的数据库架构不会限制每个网格的问题数量。一个经验法则是,当您必须更改架构以使应用程序扩展时,您还没有获得最佳架构。

于 2012-04-05T13:13:12.130 回答
1

具有一对元组的链接表更加规范化。

Question_grid
-------------
q_id
g_id

这将允许您对网格有尽可能多的问题,仅此而已。如果您尝试对列表进行硬编码,那么每个网格将需要相同数量的问题,或者会有空白或其他东西......不好。

于 2012-04-05T13:13:37.317 回答
1

那么规则是当你在“许多”(问题)关系上有一个“一个”(网格)时制作一个链接表。所以你的选择将是最好的答案,它是标准化的!

于 2012-04-05T13:14:59.617 回答