DB设计中的循环关系

时间:2017-09-03 15:58:23

标签: sql database

我对我的数据库设计有些怀疑。我有四张表遵循以下规则:

  • 一种形式可以有很多问题(0..n)。
  • 一个表单可以有很多响应(0..n)。
  • 问题属于一种形式(1)。
  • 回复属于一种形式(1)。
  • 一个回答有很多问题(答案表)(0..n)。
  • 答案属于表格(1)的具体问题。

设计导致了一个循环外观依赖图,如下所示:

Form <------------------------------- Question ^ ^ | | | | Response <---------------------------- Answer

任何人都可以帮助我吗?谢谢大家。

1 个答案:

答案 0 :(得分:1)

这种方法似乎不对。 “一种形式可以有很多问题。一种形式可以有很多答案。答案属于一种形式。”

不,答案应该引用特定的问题。如果某个问题属于某个表单,那么答案就会隐式地属于该表单,但只是间接地,因为它们属于一个问题。

归结为:

  • 一种形式可以有很多问题。
  • 一个问题可以有很多答案。

以表格的形式:

  • 表格(form_id,...)
  • 表格问题(question_id,question_text,...,form_id)
  • 表格答案(answer_id,answer_text,...,question_id)

根据最新请求修改更新:

所以你有如上所示的表格,问题和下水道。此外,您希望存储响应。答复包含几个答案和一些统计数据。

  • 表响应(response_id,form_id,submit_time,...)
  • table response_answer(response_id,answer_id)