這是BestPractice問題(或者至少我希望是這樣)。一對多或多對多?
編輯:這個例子只是爲了澄清問題。它可能是Person,Office,ContactInformation。
問題:
有3個表:
RightsSet
(
ID,
CanView,
CanEdit,
ObjectTypeID,
ObjectID
)
User
(
ID,
Username,
Password,
ProfileID
)
ProfileID
(
ID,
Name,
Description
)
用戶和資料可以有多個RightsSets。 RightsSet必須屬於1(且僅有1個)用戶或配置文件。
如何實現這一目標? 我應該創建附加表
UserRightsSets
(
UserID,
RightsSetID
)
ProfileRightsSets
(
ProfileID,
RightsSetID
)
的問題是這樣的: 如何確保當ProfileRightsSet被刪除,RightsSet也被刪除(因爲RightsSet屬於形象,並單獨配置文件)? 如何確保RightsSet僅屬於配置文件而不屬於配置文件和用戶?
或者,我可以修改RightsSet表
RightsSet
(
ID,
CanView,
CanEdit,
ObjectTypeID,
ObjectID,
UserID,
ProfileID
)
的問題,這...那好吧,如果多個對象共享RightsSet? (好吧,我想不出任何例子,但我敢肯定有有效的場景中2種以上的實體份額一種實體。)
整個事情似乎相當糟糕的想法 - 爲什麼不做大多數權限系統做什麼,並使用角色可以分配給任何數量的用戶? –
嗯......這真的不是關於用戶和配置文件的問題......它是關於3個實體之間的關係,其中2個實體可以具有3個倍數,但是3個必須正好屬於1. –