【发布时间】:2017-10-15 10:33:34
【问题描述】:
我想制作一个包含许多科目的测验应用程序,例如数学、生物、物理、化学等。
为每个主题制作一个表格好不好,还是应该在表格“问题”中添加一个名为“主题”的列?
哪个性能最好?
【问题讨论】:
-
如果唯一的额外列是
subject,则添加该列并将其用作对包含实际主题的表格的引用。
标签: php mysql database database-design
我想制作一个包含许多科目的测验应用程序,例如数学、生物、物理、化学等。
为每个主题制作一个表格好不好,还是应该在表格“问题”中添加一个名为“主题”的列?
哪个性能最好?
【问题讨论】:
subject,则添加该列并将其用作对包含实际主题的表格的引用。
标签: php mysql database database-design
就我而言,在您的情况下,我将创建一个名为 subjects 的表来存储您的所有主题,然后在您的 problems 表中创建一个列 subject 以创建一个 foreign key在这两个表之间。
通过这种方式,您可以轻松地为您的主题添加一些特定参数(作为难度)并轻松检索这些参数。
祝你的新项目好运!
【讨论】:
problems 表中检索随机问题的最佳方法吗?我的意思是,我只想要 50 个最新记录中的 30 个随机问题。使用 SQL 查询 rand() 或检索 50 条最新记录然后使用 PHP 随机选择其中 30 条更好吗?谢谢
LIMIT 直接从数据库中获取数据总是更快,而不是获取所有结果以便稍后在 PHP 中处理它们。如果是这样,请不要忘记将答案标记为正确。谢谢! :)
我希望您的逻辑数据模型是一个带有主题的表(带有一个单独的链接表来列出您的主题)。
从构建它的性能角度来看,除非行数很大,否则我不认为您需要妥协设计(假设您使用的是成熟的数据库技术,如 SQL)。
【讨论】: