web-dev-qa-db-ja.com

学生と家族/親のためのデータベース設計

私は、生徒とその保護者を保持するデータベースを設計しています。私がこれまでに持っているものはここにあります:

enter image description here

条件

  • 学生の兄弟姉妹(つまり、同じ家族の兄弟/姉妹)を特定する必要がある
  • 家族は無制限の数の保護者を持つことができます
  • 兄弟/姉妹は常に同じ保護者のセットを持っています
  • 保護者は同じ住所を共有できます
  • 保護者はアドレスを持たない場合もあり、メールまたは電話番号の場合もあります

私の参加テーブル[家族]は、私にとって少し冗長なようです。これはそれを行うための最良の方法ですか?現在は疎らですが、将来、家族レベルの情報を追加する必要があることがわかります。たとえば、請求書は学生や保護者ごとではなく、家族レベルで送信されます。

メール/電話番号を別のテーブルに保存する必要がありますか?

2
Alex

Personと呼ばれる別のテーブルを作成してみませんか? GuardianまたはStudent関連の情報を格納するための個別のテーブルが必要であり、どちらも個人IDを参照できます。

ファミリーの代わりに、RelationshipTypeのExtra列を持つ2つの異なるPersonを結合するリレーションテーブル(およびもちろん、別のルックアップテーブル)を使用できます。

住所テーブルは個人テーブルにも接続できます。住所と同じように、連絡先の詳細用の別のテーブルと、電話番号、電子メール、モバイル、仕事用メール、仕事用電話などの値を格納する連絡先タイプ参照テーブルを使用できます。

これは、元学生が保護者になるシナリオでも役立ちます。

お役に立てば幸いです。

モーリン・ターカー

3
mouliin