簡體   English   中英

數據庫設計:用於自引用FK的many2many關系

[英]Database design: many2many relationship for self referencing FK

我的問題可以用經典的“員工”自引用表來證明,其中manager_id是與employee_id(PK)相關的FK。 另一個表是“授權”。

如果授權僅與管理人員相關,而與非管理人員無關,該怎么辦? 假設我創建了一個“經理授權”聯結表,即使該表不是唯一的,它也可以連接到employee.manager_id嗎?

或者,即使經理具有與非經理完全相同的屬性,也必須將他們分隔到另一個表嗎?

看一下這種結構的員工結構 它管理復雜的情況(經理負責一個或多個部門),並且記錄是歷史記錄(from_date,to_date)。

嘗試如下修改此結構:

  • 部門成為授權
  • dept_emp成為關聯表auth_emp
  • 刪除dept_manager

FK必須始終引用PK,因此無法通過manager_id將auth_emp連接到雇員(請考慮為空引用)。

是否將屬於經理的雇員拆分到另一個表的決定取決於您的要求(請考慮一下:當一名雇員成為經理時?當至少另一名雇員引用他時,該雇員是經理?)。

如果要強制使用在auth_emp中注冊的employee_id引用經理的約束,則可以在employee表上使用觸發器。 顯然,觸發邏輯取決於您的要求。

暫無
暫無

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

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