0

したがって、ここでの意図は、" " テーブルEmployee内の同じ主キーへの 2 つの参照を " " に含めることです。EmployeeContactInformationこの理由は、従業員に同じテーブルの 2 つの異なるコピーを含めるようにしたいからです。たとえばwork contact info、 の場合は 1 つ、 の場合は別ですhome contact info

これをどのように実装し、どの関係を使用しますか?
私は1対多を想定していますか?

現在のデータベースのスクリーンショット

現在のデータベースのスクリーンショット

4

2 に答える 2

0
  1. 従業員は複数の連絡先情報を持つことができます(あなたが言及したように自宅と職場)。したがって、関係は1対多でなければなりません
  2. これをモデル化するには、リレーションシップの片側の外部キーを多側に追加する必要があります。したがって、EmployeeContact テーブルに employee_id 列を追加する必要があります。このようにして、各従業員の連絡先行が従業員に接続されます
  3. employee テーブルの "Work extension" 列は、EmployeeContact テーブルに移動して名前を "extension" に変更できます。これは、自宅の電話または勤務先の電話に使用できる電話番号の内線番号であるためです。
  4. EmployeeContact テーブルの「自宅の電話番号」列の名前を「電話番号」に変更する必要があります。これは、テーブルが自宅と職場の両方に対応しているためです。
  5. 仕事/家庭に関する情報を保存する EmployeeContact テーブルに別の列を保存する必要があります
于 2016-03-28T08:02:01.597 に答える
0

データベースのデザインを変更しましょう:

  • ContactInfoTypes という名前のテーブルを作成します。必要な各 ContactInfoTypes の定義を保持します (あなたの場合: workContactInfo と homeContactInfo)。2 つの列 (contactTypeId、contactTypeName) があります。
  • EmployeeContactInfo TABLE に ContactInfoType (DATATYPE 番号) という名前の列を追加します。列 ContactInfoType はForeign-Key、上記の TABLE Con​​tactInfoTypes の値を保持します

TABLE: EmployeeContactInfo に連絡先を挿入する場合、Insert2 つの行が必要になります (1 つは workContactInfo に対して格納された数値、もう 1 つは homeContactInfo です)。

于 2016-03-28T08:41:52.180 に答える