我有兩個表關係數據建模
客戶(CID(PK),姓名,電話)
訂單(OID,CID(FK),日期,金額)
客戶可有很多訂單,但每個訂單隻屬於一個客戶。
問題是它們之間有什麼關係。這是一對多的識別關係還是非識別關係?
由於訂單不能存在沒有一個客戶,使其成爲一個識別關係?
所以我應該在訂單表的主鍵中包含cid或不?
該數據庫不能沒有任何訂單的客戶。
我有兩個表關係數據建模
客戶(CID(PK),姓名,電話)
訂單(OID,CID(FK),日期,金額)
客戶可有很多訂單,但每個訂單隻屬於一個客戶。
問題是它們之間有什麼關係。這是一對多的識別關係還是非識別關係?
由於訂單不能存在沒有一個客戶,使其成爲一個識別關係?
所以我應該在訂單表的主鍵中包含cid或不?
該數據庫不能沒有任何訂單的客戶。
識別關係不是由兩個實體集之間的存在依賴關係決定的。存在依賴通常意味着實體集必須完全參與到關係中。
識別關係意味着一個實體集取決於另一個實體集。依賴實體集被稱爲弱實體集,因爲它不能單獨由其自己的屬性來標識。
在你的例子中,我假設oid
是一個自動遞增的列。這使得它成爲識別Order
的替代關鍵字,並且Order
然後是一個常規實體集合,因爲它可以通過它自己的屬性來識別。這意味着兩個實體集合之間的關係不能確定。
該關係由一對欄(oid, cid)
表示。 oid
應該是PK,以便每個訂單(oid
)只能與一個客戶(cid
)關聯。但是,cid
沒有唯一的限制,這意味着每個cid
可以與多個oid
關聯。因此,這是一種一對多的關係。
也看到我的回答以下問題:is optionality (mandatory, optional) and participation (total, partial) are same?
您使用哪種框架和語言? –
我正在使用Oracle和SQL開發人員數據建模師,但這確實很重要嗎?我認爲這應該是一種識別關係,因爲沒有客戶就不能存在訂單。 –