我正在设计在线测试应用程序,用户登录,参加考试并查看分数。很明显,我们需要有问答表
我的设计在下面结束
QUESTION
--------
ID
ANSWER_ID (ANSWER FOR THIS QUESTION)
TEXT
:
ANSWER
ID
TEXT
QUESTION_ID
例如: - 问题有4个选项,因此四个答案行将具有相同的问题ID。和问题表将具有实际的answer_id(大于4)
附图[{3}}
但在上面的情况下,它具有循环依赖性,当我使用像hibernate这样的数据库框架来处理数据时,我觉得会产生问题。寻找上述要求的替代设计
答案 0 :(得分:2)
问问自己,这两个表之间的关系是什么?一个问题可以有多个答案吗?答案有多个问题吗?如果是,您有m:n关系。如果您只回答了第一个问题,那么您就有1:n的关系。
如果您有 @Override
public void onReceive(final Context context, Intent intent) {
TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
if(incomingNumber.contains("CHECKING NUMBER")){
AudioManager audio_mngr = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
audio_mngr.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
}
System.out.println("incomingNumber : "+incomingNumber);
}
},PhoneStateListener.LISTEN_CALL_STATE);
}
,则1:n relationship
表格中不需要answer_id
。加入将像
question
如果您有...
FROM question q
JOIN answer a ON q.question_id = a.question_id
...
,则需要第三个表来解析关系(它称为联结表或桥表)。
<强>表格强>
问题(question_id)<强>加入:强>
m:n relationship
顺便说一句,你不需要...
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
即可,或者你会有超过2147483647个问题/答案吗?