Sql-Server

如何確定關係的方向?

  • April 16, 2021

假設我有以下關係圖:

圖表

您如何描述由紅線確定的關係?

從左到右閱讀您會說每個訂單只有一個客戶,因此可以將其描述為“多對一”,而從右到左每個客戶可以有多個訂單,因此您可以說它是“一對多”。

如果沒有方向,嘗試討論關係似乎是徒勞的,但我很少看到有人說,這是一對多(從客戶到訂單)或多對一(從訂單到客戶)。

所以我的問題是為什麼會出現這種情況(它只是從上下文中暗示的?)還是主鍵有某種關係,因為我們不會真正在客戶表中儲存 order_ID(我不是 DBA,但我不’認為從設計的角度來看這沒有意義)而我們必須將客戶作為外鍵儲存在訂單表中,否則我們將不知道誰購買了這些東西,所以這會優先考慮從右到左邊和我們說的紅線是一對多的關係?

任何澄清都會很棒!

外鍵總是指唯一索引或主鍵。因此,“一”側始終是相關列是鍵的一側。

在大多數情況下,您在模型中描述實體及其關係的方式只是遵循事物 IRL 的自然順序。訂單不會突然自行出現,也不會觸發客戶推薦。客戶至上,他們每個人都可以有零個或多個訂單,他們授予參考。再次轉到物理模型,您必須在訂單行**之前有一個客戶行,這樣引用完整性約束才能起作用。

引用自:https://dba.stackexchange.com/questions/264437