gpt4 book ai didi

mysql - 哪一种是更好的方法?

转载 作者:行者123 更新时间:2023-11-29 10:36:17 26 4
gpt4 key购买 nike

考虑以下情况。

table 1: assessment 

enter image description here

  • 这表明学生ID A1001已接受assessment_ID:E1。
  • 这表明学生ID A1002已接受评估_ID:E2。
  • assessment_ID:E1 有 5 个问题。
  • assessment_ID:E2 有 9 个问题。

我需要一个表来存储学生的答案。以下哪一项是更好的方法? enter image description here

两个表都有“reference_ID”,它充当引用assessment.id的外键

选项A:我需要插入其问题编号(行)+其相应的答案。选项 B:每当学生进行问题数量较多的评估时,我都需要在表格中添加一个新列。

假设assessment_ID:E3有14个问题,那么我需要向表格中添加row10~row14列。

我的想法选项A:在这种情况下创建了许多记录。选项A有14条记录,而选项B只有2条记录。

选项 B:有些栏被浪费了,因为并非所有评估都有 9 个问题。

就性能、执行速度和存储空间而言,哪一种解决方案更好?

谢谢。

最佳答案

简短版本:选项 A 是大多数更好的答案。这里有详细的explanation为什么。

中版:选项A将占用更多空间。执行速度将取决于您正在运行的查询。

长版本:添加新评估不需要在选项 A 下更改任何代码。您只需定义问题即可开始。 (我还可能添加一个名为“问题”的表,其中包含问题!)

美中不足的是:如果您想在列中显示答案,则 ONE 查询将使选项 A 变得很痛苦。因为那样你就必须有能够旋转答案表的代码。

结束镜头:“选择一种使程序变得简单的数据表示形式。” (Elements of Programming Style,规则 12)。因此,当您考虑如何设计数据库时,请考虑使用它的方式,并选择使代码易于编写的设计。

关于mysql - 哪一种是更好的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46378851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com