首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Crossword字谜数据库

Crossword字谜数据库
EN

Stack Overflow用户
提问于 2012-04-05 21:10:08
回答 4查看 1.1K关注 0票数 1

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

问题表(q_id,问题,答案...)网格表(g_id,name,...)

当我把问题表和网格表联系起来的时候,我想到了一个好方法,

Questions_Grid(q_id,g_id),则该对将是主键,

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-04-05 21:13:44

看起来你的老板的建议是将问题ids列表存储为网格表中的文本列。如果我理解你问的是什么,当然,第一个要好得多,因为它是标准化的。在你的方案中,你可以进行许多有用的查询,这些查询在你老板的方案中是杂乱的或不可能的(如果可能的话,还会很慢)。

票数 2
EN

Stack Overflow用户

发布于 2012-04-05 21:13:12

第一个选项更好,这样数据库的模式就不会限制每个网格的问题数量。经验法则是,当您必须更改模式以使应用程序变得可伸缩时,您没有得到最佳模式。

票数 1
EN

Stack Overflow用户

发布于 2012-04-05 21:13:37

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

代码语言:javascript
复制
Question_grid
-------------
q_id
g_id

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10029247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档