我想創建一個數據庫,但每次我看看我需要什麼以及如何去做,我認爲不同的解決方案更好。我將在下面描述我的情況,並想知道什麼是最好的方式去和爲什麼:關於數據庫結構的建議
我目前有我的要求的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
的值。
其他解決方案,我能想到的是denormalising問題,具有Info
和Question
表合併,然後Answers
表:
Answers:
AnswersID: int identifier
AnswersPerson: FK relating to PersonId
Answer1: int
Answer2: bit
Answer3: int
etc..
最後,我還可以使答案列有nvarchar
代替int
,並根據需要只存儲numerical
和boolean
值。 (這看起來像是最簡單的解決方案,但我需要定期備份不同數據庫的答案,因爲我無法控制,所以我必須確保這些值是可以轉讓的)
我在尋找什麼對我來說最好的方法,如果它是我提到的那個或我無法想象的自己。
在此先感謝。
第二(非規格化)解決方案非常糟糕,不要這樣做。查找'sql_variant',它可能會簡化你的第一個解決方案。 – dasblinkenlight
@dasblinkenlight謝謝,我不知道'sql_variant'的存在。仔細研究之後,我將開始制定我的第一個解決方案,但用'sql_variant'替換回答中的'int'。 – Amber