web-dev-qa-db-ja.com

自身と関係のあるエンティティセット

enter image description here

自分自身と関係のあるエンティティセットがあるため、理解できないERモデルがあります。私は2つの質問を理解しようとしています:

1)子供は親の前に生まれることができますか?
2)人は自分の子供になることができますか?

1)の場合、parentIDフィールドがnullになるため、これは可能ではないと思います

2)の場合、これは多対1の関係であるため、その人が他の誰かの子でない限り、これが真実ではない理由がわかりません。

3
JasonDor

ERDには、どちらの方法でもモデルを制約するものはありません。適切な制約がなければ、子供は親の前に生まれたと記録され、人は自分の子供または親になり、世代を超えて循環する可能性があります。

たとえば、ERDが次のように実装されているとします。

Person (personId PK, dateOfBirth, name, gender)
ChildOf (personId PK/FK, parentId FK)

次の行のセットを記録できます。

Person (1, 2000-11-01, John, Male)   ChildOf (1, 2)
Person (2, 1970-05-23, Jane, Female) ChildOf (2, 4)
Person (3, 1985-01-11, Jack, Male)   ChildOf (3, 3)
Person (4, 1950-11-01, Joan, Female) ChildOf (4, 1)

ERDには、制約を防ぐものは何もありません。現状では、両方の質問に対して「はい」または「想定または実装している明記されていない制約によって異なります」と答える必要があります。そのような制約が必要な場合は、明示的に述べることをお勧めします。

3
reaanb