如何构建/规范化这个数据库?

时间:2015-07-08 20:09:01

标签: mysql database-design database-normalization

我需要创建一个数据库,该数据库应该包含50个问题,每个问题的3个可能答案和每个答案的值。

enter image description here

这是我的第一次猜测,但感觉不对,我不确定如何正确访问这些值。 关于如何构建这个的任何建议?

这似乎是正确的方法:

questions table
---------------
id
title
...

answers table
-------------
id
question_id
answer
value

2 个答案:

答案 0 :(得分:0)

一种方法是

questions table
---------------
id
title
...

values table
------------
id
value


answers table
-------------
id
question_id
answer
value_id

然后获取特定问题的所有答案

select a.*, v.value
from answers a
join questions q on q.id = a.question_id
join values v on v.id = a.value_id
where q.title = 'what is the name of Dr. Who'

答案 1 :(得分:0)

questions 
----------
id
title

answers 
--------
id
question_id
answer
value

此查询将为您提供所有问题及其可能的答案,答案列出从最好到最差(假设value是“积分”系统,而不是质量描述如“好”“更好” “”最好“)。

SELECT * 
FROM questions AS qTbl 
LEFT JOIN answers AS aTbl ON qTbl.id = aTbl.question_id
ORDER BY qTbl.title, aTbl.value DESC
;