簡體   English   中英

如何解決ER圖中的此規范化問題

[英]How to resolve this normalization issue in ER diagram

這是學術性的,所以請不要在現實世界中這樣說:)

此練習的目的是盡可能地規范化。

關鍵是:雇員可以具有1個角色(但可以將1個角色分配給更多雇員)。 一個角色可以是Reg.Employee或Lead,也可以將這些角色分配給更多角色(不重復值),這是問題所在,因為Role擁有兩個FK(一個給Reg.Employee,另一個給Lead)。需要可以為空,是嗎? 如果我將一個設置為可空,則在為另一個創建記錄時,也需要分配此角色。 因此,我認為在ERD抽象中,唯一的方法是使兩個FK都可為空。 在此處輸入圖片說明

不確定我是否理解您的問題,因此,這是我對問題的陳述:角色可以是兩個“類型”中的一個,一個或兩個。

如果是這樣,那么是的,它們都應該可以為空。 如果必須為角色分配至少一個角色(兩個角色都不能為null),則根據DBMS,您可以將其表示為對表的約束。

希望能有所幫助。

補充:由於它是一個或一個,而不是兩者,但必須是一個,所以我不知道如何在ERD上顯示出來。 在SQL Server中,我將使用“檢查約束”,例如:

ALTER TABLE [config].[Generator]  WITH CHECK ADD  CONSTRAINT [CK_Generator] CHECK  
(( ([PNWriterProviderId] IS NOT NULL OR [BodWriterProviderId] IS NOT NULL)
and
([PNWriterProviderId] IS NULL OR [BodWriterProviderId] IS NULL)))
GO

(我有一個表的示例。)這里一個不能為null,一個必須為null。

我不知道如何將其放在ERD圖上。

干杯-

暫無
暫無

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

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