Mysql 哪种方法更好?
考虑以下情况Mysql 哪种方法更好?,mysql,database,Mysql,Database,考虑以下情况 table 1: assessment 这表明学生ID A1001已经参加了评估_ID:E1 这表明学生ID A1002已经参加了评估_ID:E2 评估编号:E1有5个问题 评估编号:E2有9个问题 我需要一张桌子来存放学生的答案。以下哪一项是更好的方法? 这两个表都有“reference_ID”,充当引用assessment.ID的外键 选项A:我需要插入它的问题编号(行)+对应的答案。 选项B:每当学生进行问题较多的评估时,我需要在表中添加一个新列 假设评估_ID:
table 1: assessment
- 这表明学生ID A1001已经参加了评估_ID:E1
- 这表明学生ID A1002已经参加了评估_ID:E2
- 评估编号:E1有5个问题
- 评估编号:E2有9个问题
谢谢。简短版本:选项A是大多数时候更好的答案。这里有一个详细的原因 中等版本:选项A将占用更多空间。执行速度将取决于您正在运行的查询 长版本:添加新评估不需要对选项a下的代码进行任何更改。您只需定义问题即可。(我可能还会添加一个名为“问题”的表,其中包含问题!) 美中不足:一个让选项成为难题的查询是,您是否希望在列中显示答案。因为这样你就必须有代码来旋转答案表
临别赠言:“选择一种使程序简单的数据表示法。”(,规则12)。因此,当您考虑如何设计数据库时,请考虑使用它的方式,并选择使代码易于编写的设计。如果您的列名包含数字,则说明您犯了严重错误。选项B非常有用选项B根本无法扩展…每次接收新数据时,列都在增长。这在Excel中甚至不是一个好的选项。绝对是选项a。你永远不应该与你的值水平。如果你以后得到一个有40个问题的测试呢?使用A,别忘了定义适当的索引,它将非常有效。谢谢!这对我很有帮助。