我有一張表SCHOOL_PARENT和一張表SCHOOL_CHILD。 SCHOOL_CHILD表包含孩子的身份證號和父母身份證,身份證是主要身份證。這是因爲一個孩子可以有兩個父母(媽媽和父親,因此2行)。至少有一種情況需要空主鍵。如何看待這種特殊情況?
存在那麼一個沒有任何父母的孩子的情況。但是我無法插入這一行,因爲表SCHOOL_CHILD不接受一個空父母,它是主鍵的一部分。如何解決這個問題呢?
我有一張表SCHOOL_PARENT和一張表SCHOOL_CHILD。 SCHOOL_CHILD表包含孩子的身份證號和父母身份證,身份證是主要身份證。這是因爲一個孩子可以有兩個父母(媽媽和父親,因此2行)。至少有一種情況需要空主鍵。如何看待這種特殊情況?
存在那麼一個沒有任何父母的孩子的情況。但是我無法插入這一行,因爲表SCHOOL_CHILD不接受一個空父母,它是主鍵的一部分。如何解決這個問題呢?
不知道如果我正確地理解這個問題,但我認爲你的數據模型是這樣的:
Table: Parent
------------
ParentID (PK)
Name
....
Table: Child
------------
ChildID (PK)
Name
....
Table: Parent_Child
----------------
ParentID (PK)
ChildID (PK)
有孩子與父母之間的許多一對多的關係;您通常在「橋接」表格中對此進行建模。
Table: SCHOOL_PARENT
------------
ParentID (PK)
Name
....
Table: SCHOOL_CHILD
------------
ChildID (PK)
MotherID (FK)
FatherID (FK)
Name
....
FatherID ant MotherID可以爲null。
如果你已經在SCHOOL_CHILD上有了孩子的ID。爲什麼你沒有2個簡單的外鍵給SCHOOL_PARENT可以爲null? – 2013-02-19 11:38:26
因爲我會在child_id中有一個副本。 child_id 1 for mom and child_id 1 for dad – user1883212 2013-02-19 12:29:03
製作兩張表:SCHOOL_CHILD_PARENT和SCHOOL_CHILD。對當前表格中的孩子進行建模是沒有意義的,因爲孩子的任何屬性都必須重複 - 每個父母一次。沒有鑰匙需要包含空值。 – sqlvogel 2013-02-19 21:38:36