2017-01-14 51 views
1

私はこれがうまくいくためにどのようなテーブルを持っているべきかわかりません。正しい関係

基本的に、私は現在、aレベルの物理紙に関する情報を格納しているテーブルを持っています。このペーパーには答えが必要な質問があります。

ペーパー(paper_id、number_of_questions、paper_location、markscheme_location)

:私はこのような何かが働くだろうと思ったデータベース(ここで、太字は主キーを表し、外部キーをイタリック)でこれを保存するために

質問しかし、このwouldn

」(question_numberをpaper_id)潜在的な質問として '1)'、 '1)a)'または '1)a)i)'これは、それぞれが質問番号の尊重された部分のいずれかを保持し、それらをすべて結びつける関係?しかし問題は、すべての質問が3つの部分すべてを持たなければならないということが起こります。ありがとう

+0

質問(paper_id、questionId int型、question_number varchar型)?この仕事を –

+0

uは、1、1としてqnoを持つことができますが、qidはあなたが答えテーブル –

+0

@ YashveerSinghを持っているときにも助けになります異なるでしょうが、私はそれが文字からの分離番号としてそれを解析するとき、簡単ですが、私はcharsです。私は、このようなvar charが '1-ai'のようにフォーマットされ、 ' - '私は推測する分割を行うことができますか? QuestionIdが必要か、paper_idとquestion_numberの複合キーで十分です - ありがとう – cookies

答えて

1

質問のために親のIDが必要です。 質問表のスキーマは、この

質問のようにかなったように思わ

PARENT_IDがquestion_idに関連する外部キーである(question_id、question_number、QUESTION_TEXT、PARENT_IDをpaper_id)。

編集: 質問行:

(1, '2', 'foo', NULL, 4) 
(2, 'a', 'bar', 1, 4) 
(3, 'i', 'blah', 2, 4) 

結果:

2. foo? 
2.a. bar? 
2.a.i blah? 
+0

質問間の親ノード関係のようなもの - はい、これはうまくいくと思いますが、今すぐ実装しようと思います。ありがとうございます:) – cookies

+0

問題を引き起こすトップレベルの質問(親)すべてのサブ質問を関連付けるまた、あなたのサブ質問は文字列であり、IDではありません。どうすれば正しい順序が保証されますか? – newGuy

+0

@ newGuy正しい順序を保証するために、このツリーを再帰的にトラバースすることができます。 – x01saa

関連する問題