如何在EERD中表示多值子类型?

时间:2016-12-23 19:12:38

标签: sql sql-server erd

我想在EErd中代表一个问题。问题可以是真/假问题或多选问题。如果它是一个多项选择问题,那么我需要添加它的答案,所以我创建了一个具有choiceChar(a,b,c,d)和choiceValue的子类型:

Question mcq EERD

现在我想知道我是否应该对choiceChar和choiceValue属性使用多值表示法,因为每个多项选择题将有多个答案,或者我应该将它作为单个值,因为我将代表choiceChar和在同一张桌子上的choiceValue。

我的问题是如何在EERD中表示多值子类型以实现同时具有选择的能力。 choiceValue?

1 个答案:

答案 0 :(得分:0)

根据您的choiceChar / choiceValue示例,我相信您具有功能依赖choiceChar -> choiceValue。这意味着将两个元素建模为独立的多值属性是不正确的 - 相反,应该将选择建模为与问题一对多关系的实体集。

multiple choice question ERD

我选择了一个弱实体,因为我相信不同的问题可以选择相同的choiceChar,因此我们可以通过复合键(qId, choiceChar)来识别选择。

从物理上讲,这是这样实现的:

multiple choice question table diagram