我正在尝试创建一个数据库,但每次我查看我需要什么以及如何去做时,我认为不同的解决方案会更好。我将在下面描述我的情况,并想知道最好的方法是什么以及为什么:
我目前有一个包含我的要求的 excel 文件,它包含一个类别列表、子类别和需要填写的相应问题以及他们需要与之相关的人员。这通常是一个简单的案例,将类别、子类别存储在一个表中,将其链接到一个问题表,然后拥有一个引用问题和人员表的答案表。像这样:
Person:
personID: int identifier
personName: nvarchar(50)
Info:
infoID: int identifier
infoCat: nvarchar(50)
infoSubCat: nvarchar(50)
Question
questionID: int identifier
questionText: nvarchar(100)
questionInfo: FK relating to infoID
Answer:
answerID: int identifier
answerQuestion: FK relating to questionID
answerPerson: FK relating to PersonID
answerNumber: int
不过,我在这里面临的问题是答案并不总是一个数字。有些问题需要我存储一个bit
或一个text
值。
我能想到的另一个解决方案是将问题非规范化,有一个表Info
并Question
合并,然后是一个Answers
表:
Answers:
AnswersID: int identifier
AnswersPerson: FK relating to PersonId
Answer1: int
Answer2: bit
Answer3: int
etc..
最后,我还可以让答案列有nvarchar
而不是int
,并根据需要在其中存储numerical
和boolean
值。(这似乎是最简单的解决方案,但我需要定期将答案备份到我无法控制的不同数据库,因此我必须确保这些值是可转移的)
我正在寻找对我来说最好的方法,如果它是我提到的方法之一或我自己想不到的方法。
提前致谢。