2017-04-16 7 views
1

私は学校の成績分析のためのデータベースを作成しています。 私のデータベースには、 "学生の科目のような表があります" ...私は各生徒が採点した刻みを取るテーブルが必要です。このテーブルの
は、2つのオプション... を検討しています:私はstudents_regno、すべての被験者について(列はすなわち、多くの列を持つテーブル(マーク)を持つことになります - 約20この表はあります 少ない行である可能性があります。 。たぶん700 それとも を:いくつかの列がstudents_regno、subject_id、マークこれが唯一の3列がありますが、行は5000行にまたがることが、すなわちと私はマークテーブルを持つことができ多くの行を持ち、多数の列を持っているのはどうですか?

方法必要があります。私は行く?

+0

でマークテーブルを作るオプション2のために行くと思います。一貫性のない行と列の使用。例: 'これは3行しか持たないが、行は5000行を超えることがある。意味がありません。列はどこを正確に意味しましたか? – Sasang

+0

マークと呼ばれるものではありません。彼らは成績と呼ばれています。 –

+0

@shogunivarこのオプションは、マークがデータベースに送られると5000行以上になります...これらの行がすべてデータベースの速度に影響しますか?速度は私の他の主要な関心事です。 subject_idとstudents_regnoも何度も何度も繰り返します。それは問題ですか? –

答えて

2

第2の方法は確かに行く方法です。

システムを拡張できるようにすることを常に心に留めておきたいと思います。 5年後に新しい科目が導入された場合。あなたはそれを追加できるようにしたい。そして、あなたは余分なフィールドを追加し、あなたがすでに持っているすべてのレコードのためにそれを空のままにしたくありません。

すべてを分離しておくことも良いです。おそらく90%のデータを必要としない時間がたくさんあります。それから、それを1マークのテーブルからすべて取得する方が良いです。

だから私はあなたの質問をしてください明確student_regno, subject_id, mark

関連する問題