簡體   English   中英

數據庫中的一對一關系

[英]one-to-one relationship in database

假設我有一個表users ,帶有PK id_user

我還在表users和表employer之間建立了識別關系。 我可以在表employer使用PK id_user作為外鍵,也可以在此表中使用PK(具有唯一約束)?

在這種情況下,雇主只有一個工人,一個工人只有一個雇主。

簡短回答:是的。 當外鍵也是子表的主鍵時,它會將其強制為一對一。

更長的答案:根據我的經驗,我每次制作的每1對1都會被擴展為1對多或多對多,因為用戶的要求可以更好地理解。 示例:您最終需要有雇主的歷史記錄,因此突然間您會有多對多的人員和有效日期的雇主。

在發生這種情況之后,我做了一點,深入研究為什么1對1似乎有意義,並且總是發現它沒有。 為了避免一對一的表格,我為自己制定了一個經驗法則,因為它們通常表明對要求的理解不完整。

主鍵是特殊的唯一鍵。 在這種情況下,我不會將雇員表中的工人聯系起來,因為通常雇主有一個以上的工人。 如果你完全確定它是一對一的關系,我不明白為什么你使用2個表而不是一個表。 意思是,將雇主字段添加到工作表。 真正的一對一關系是例如電話號碼或電子郵件地址,並且通常它們與所有者一起存儲,而不是存儲在單獨的表中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM