2016-11-16 6 views
-1

私はMySQLに少し新しく、SQLで汎化関連を実装する方法が不思議でした。MySQLで一般化を実装する方法は?

私のUMLダイアグラムでは、ユーザーのすべての属性を継承する2つのサブクラス(従業員とマネージャ)を持つユーザーがいます。

これをSQLで書く方法を教えてください。

ありがとうございます!

UML Generalisation

+0

現在のデザインで何が問題になっていますか? –

+0

従業員とマネージャーの「詳細」テーブルには、ユーザーが複数のマネージャー(または従業員)の「詳細」を持つことができない限り、独自のPK値は必要ありません。私はすべてのマネージャーが従業員だと思っていますが、それはちょうど名前の変更である可能性があります。 – Uueerdo

答えて

0

一般化を実装するためのさまざまな方法があります。 1つは、すべての一般化された属性と、クラスを継承している列挙体を持つ表を作成し、特殊な属性のうちのどれが有効であるかを示すことです。特殊なクラスから属性を識別するための命名規則もあります。例えば。 Employeeの属性がdegreeの場合は​​などとなります。

Userテーブルを持っていることであろう第二の方法とEmployeeで外部キーを使用してなど

すべての要件に依存します。銀色の弾丸はありません。

関連する問題