2017-09-17 12 views
0

私は従業員がいて、名前と電話番号のような基本的なものを持っていると言いますが、1つの特定の役割営業担当者(他の人はいない)は、少し余分な情報を格納する必要があります。私はまた、すべての可能な役割を知ることができず、新しい役割をいつでも行うことができません。ER図が不明な多くの役割があるが特定のものが1つ異なる

これをER図で表現する最良の方法は何ですか?営業担当者でなければ、私は多価値属性を使用するだけです。

考えられる最良の方法は次のとおりです。 可能性として 'salesperson'と 'other'を含むサブクラスが重複しています。しかし、これまでER図で「他人」を見たことがないので、これは良い解決策だとは思わない。

余分な情報を格納できる営業担当者のために、1つの非総参加サブクラスを持つことができますが、それ以外の場合は、すべてのロールを表す従業員エンティティに多値属性がありますか?冗長性と情報が一緒に保存されていないので、まだ私には良いとは思われません。

答えて

0

従業員と営業担当者の2つのテーブルがあります。

従業員には、営業担当者を含むすべての種類の従業員に対して取得するすべてのデータが含まれます。キーはEmployee.Id

です。セールス担当者にはセールス担当者のエントリしかありません。セールス担当者専用のデータが含まれています。キーはSalesperson.EmployeeIdです。これは、外部キーでもあり、Employee.Idを参照しています。

営業担当者に関するすべてのデータを表示するには、キーを使用して2つのテーブルを結合します。この結合を利用可能にするビューを持つことができます。

これは、クラステーブル継承と共有プライマリキーの適合です。

関連する問題