データベース設計に問題があります。 が、私は心の中で2つのオプションがありますが、それらのどれもが本当に私の問題を解決していない:異なる回答データ型を持つ多くの質問のデータベース設計
オプション1:
FB (ID, Year, Question, Value)
1 | 2004| Q1 | hello
1 | 2004| Q2500 | 15.2.12
1 | 2004| Q2 | 56€
1 | 2003| Q1 | bye
2 | 2003| Q2 | 55€
をオプション1の問題は、フィールド「値」のデータ型は、本当にすべてのものにできることです!私は、各データ型のテーブルや
- 考える(ID、年、質問、Valueint、ここで、valueStringを、... .etc。)
その問題を解決するために、 1.も2も私にとって正しいとは思えません。
オプション2:
FB (ID, Year, Q1, Q2, …., Q2500)
1| 2004 | hello| 56€ |,....,| 15.2.12
1| 2003 | bye | …...|,….., |…..
2| 2003 | salut| 55€ |, …..,|…..
質問(Q1-QX)の数が多くを変えることができます。
何か提案がありがとうございます!これはあなたがそれぞれ答えは全く無関係のを確実にしない一方で、ヌル正しいタイプのものであり、ないことを確認することができます
CREATE TABLE Answers (
ID int not null,
Year int not null,
QuestionID varchar(5) not null,
AnswerType varchar(10) not null,
IntAnswer int null,
CharAnswer varchar(max) null,
BoolAnswer bit null,
constraint FK_Answers_Questions FOREIGN KEY (QuestionID) references Questions,
constraint FK_Answers_Question_TypeCheck FOREIGN KEY (QuestionID,AnswerType) references Questions (QuestionID,AnswerType),
constraint CK_Answer_Types CHECK (
(IntAnswer is null or AnswerType='INT') and
(CharAnswer is null or AnswerType='CHAR') and
(BoolAnswer is null or AnswerType='BOOL') and
(IntAnswer is not null or CharAnswer is not null or BoolAnswer is not null)
)
)
:ありがとう...
ようこそStackOverflow:コード、XML、またはデータサンプルを投稿する場合、**これらの行をテキストエディタで強調表示し、エディタツールバーの[コードサンプル]ボタン( '{}')をクリックしてくださいフォーマットと構文はそれを強調する! –