如何避免表格之间的循环依赖关系
问题描述:
我正在设计在线测试应用程序,用户登录,参加考试并查看得分。很明显,我们需要有问题,回答表如何避免表格之间的循环依赖关系
和我的设计总结如下
QUESTION
--------
ID
ANSWER_ID (ANSWER FOR THIS QUESTION)
TEXT
:
ANSWER
ID
TEXT
QUESTION_ID
的如: - 题有4个选项,所以这将有同样的问题,ID有4个答案行。和问题表将具有(以上4)
但在上述情况下的实际answer_id,它具有循环依赖我感觉会产生问题时等休眠我用户数据库框架,以处理数据。寻找任何替代设计以上要求
答
问问自己,两张表之间的关系是什么?问题可以有多个答案?答案可以有多个问题?如果是,你有一个m:n的关系。如果你只回答第一个问题,你有1:n的关系。
如果您有1:n relationship
,则表question
表中不需要answer_id
。加入会就像
...
FROM question q
JOIN answer a ON q.question_id = a.question_id
...
工作,如果你有一个m:n relationship
,就需要第三个表能解决关系(它被称为结合表,或桥接表)。
表:
问题(question_id)
答案(answer_id)
question_2_answer(question_id,answer_id)
加入:
...
FROM question q
JOIN question_2_answer q2a ON q.question_id = q2a.question_id
JOIN answer a ON a.answer_id = q2a.answer_id
...
顺便说一句,你不需要BIGINT
作为数据类型,只需INT
会做,或者你会有超过2147483647问题/答案?
- 阅读更多关于datatypes
柜面1方案的..我怎么会知道哪个选项是答案的一个问题? –
完全像我加入我的答案。没有“其他方式加入”。像我一样加入表格,就是这样。或者我不明白你的问题。 – fancyPants
如果你想知道,例如如何得到没有答案的问题(用我的连接你会得到一个空的结果(只是'连接'相当于'内部连接'),[这里](http:// blog。编码horror.com/a-visual-explanation-of-sql-joins/)对不同连接的一个很好的解释。 – fancyPants