0

データモデルに4つのテーブルがあります。つまり、

  • 学生、
  • 選択的、
  • 選択的価値、および
  • 学生選択科目。

Studentテーブルには、主キーとして学生IDを持つ学生のリストが含まれています。

選択テーブルには、選択IDを主キーとして大学が提供する選択のリストが含まれています。

選択値テーブルには、各選択科目の可能な値のリストが含まれています。このテーブルの主キーは、選択IDと値ID(複合主キー)の組み合わせであるため、次の選択では、値は1から始まります。

学生選択テーブルには、主キーとして学生ID、選択ID、および値IDが含まれています。しかし、私は次の変更を行うように求められました、

複合主キーの代わりに選択値テーブルのIDを持ち、学生の選択テーブルで主キー(id)を使用します。したがって、選択科目のテーブルと学生の選択科目の休憩の間のリンク。前者または後者の最善のアプローチを教えてください。

4

1 に答える 1

1

2番目の方法は、正規化され、将来的に選択値を変更することをはるかに少なくし、dbエンジンがその場でクエリを最適化できるため、一般に「より良い」方法と見なされます。また、値が文字列の場合は、実際にデータベースのスペースを節約できます。あなたが説明したと思うモデルは次のとおりです。

Student
    StudentID

Elective
    ElectiveID

ElectiveValue
    ElectiveValueID
    FK_ElectiveID
    Value

StudentElective
    StudentElectiveValueID
    FK_StudentID
    FK_ElectiveValueID
于 2013-01-18T07:56:39.623 に答える