2017-10-25 8 views
1

あなたは下記見ることができるように、UserCallをすることができる、Operatortime(私の一部に誤り、列2)を書いて、それをログに記録されます、彼のown IDID of the callerOperatorは、Solution IDおよびdescribingの溶液を生成することによってSolutionを作成することもできます。SQLデータベースの設計ERD - が異なるため、関数の空のエンティティ

Userは、属性としてOperatorと区別されることはありません。実際には、両方ともPersonエンティティからIDを継承します。

私には2つの質問があります。

あなたが見ることができるように、まず、Call実体は同じ列(UserOperator用ID)ある2つの属性がありますが、常に(すなわちUserOperatorになることはありません)二つの異なる人々を代表します。これは正しいことですか?

第二に、私は何の属性は、互いから(ソリューションを作成することはできませんUser)何かかどうかを実行するだけの能力を区別しないので、別々のエンティティとしてUserOperatorを持っていることについて確認していません。これは、継承したものとは別の属性を持たないことを意味します。これは正しいか、2つのエンティティをPersonエンティティの下でマージする必要がありますか?

ありがとうございます。

enter image description here

答えて

0

それは彼らが明確な属性を持っていない場合でも、明確な関係及び/または制約を持つサブタイプを作成するために有効です。参照整合性を使用して、Operator IDとUser IDがCallテーブルに混在しないようにし、UserテーブルとOperatorテーブルのID間で相互排除を強制することができます。

表記法に関しては、UserとOperatorの表にIDを表示し、Crowの足線を使用して表間のFK制約を表します。サブタイプを明示的にしたい場合、私はむしろ、Chenの表記法を使用しているEER図では、表の図ではなく表記しています。

関連する問題