首先要做的事情:
问题:
答案 0 :(得分:1)
您可以通过设计系统来清理事物,使得一个问题只能存在于一个部分上,一个部分只能存在于一个调查中。这同样适用于QuestionOptions,尽管这个领域对我来说不太清楚。这将消除对那些交叉表的需要。此更改可能要求您在客户端应用程序中将代码添加到复制或移动一个部分或问题(包括所有选项),从一个调查/部分到另一个调查/部分。
您需要在Section,Questions和OptionGroups中添加一列来存储位置/序数信息,因为您希望它们以预先选择的顺序显示。
此外,您还有一些几乎完全由外键组成的小表。在这些情况下,使用自动编号ID列作为代理键并不总是一个好主意,而是定义一个主键,它是外键的复合键。如果您选择保留所有相交表,则尤其如此。如果不这样做,则至少还需要对这些列具有唯一约束。