这是问答的好习惯吗?
Posted
技术标签:
【中文标题】这是问答的好习惯吗?【英文标题】:Is this good practices for questions and answers? 【发布时间】:2016-06-27 23:56:36 【问题描述】:我即将开始一个带有问题和答案的“测验”项目。在我开始之前,我只想和各位专家一起了解一下数据库设计应该是怎样的。
我用谷歌搜索并搜索了这个answer,它应该是两个表。一个有问题,一个有答案。
TABLE questions
FIELDS: id, text
TABLE answers
FIELDS: id, question_id, text, correct
我想我会有大约 100 多个来自不同主题的问题。
所以我想添加一个主题行以便排序,并显示来自特定主题的问题,如下所示:
question
表将如下所示:
+----+-----------+---------------------------------------+
| id | subject | text |
+----+-----------+---------------------------------------+
| 0 | beer | what is the best beer in the world? |
| 1 | mountains | what is the world's highest mountain? |
+----+-----------+---------------------------------------+
而answers
表,则为 1 是正确答案:
+----+------+---------------+---------+
| id | q_id | text | correct |
+----+------+---------------+---------+
| 0 | 0 | carlsberg | 1 |
| 1 | 0 | heiniken | 0 |
| 2 | 0 | root beer | 0 |
| 3 | 0 | budweiser | 0 |
| 4 | 1 | k2 | 0 |
| 5 | 1 | Kangchenjunga | 0 |
| 6 | 1 | Mount Everest | 1 |
| 7 | 1 | Makalu | 0 |
+----+------+---------------+---------+
我的问题:
还有其他更高效(甚至更简单)的做事方式吗?【问题讨论】:
这不是最好的解决方案..
我建议从answers
中删除列q_id
,并创建一个名为:questions_to_answers
的链接表,并改为使用列:id (int autoincrement), question_id (int), answer_id (int) and correct_answer (tinyint)
。
这样您就可以重复使用多个问题的答案 (many-to-many relationship
),或者只是重复使用同一问题的答案。在我看来,它为您提供了强大而健壮的移动解决方案。
【讨论】:
这就是我要做的。 抱歉,我编辑自己的 cmets 的能力今天真的崩溃了 :-( 感谢您的回答!您能否提供数据库方案和示例?不太清楚链接表是如何工作的以上是关于这是问答的好习惯吗?的主要内容,如果未能解决你的问题,请参考以下文章
在java中对每个方法使用一个大的try-catch是一种已知的好习惯吗? [关闭]