實體關聯綱要圖(ERD)
lua
複製程式碼
+-----------------+ +-----------------+ +-----------------+
| Department | | Employee | | Project |
+-----------------+ +-----------------+ +-----------------+
| dept-id (PK) |<-----| emp-id (PK) | | proj-id (PK) |
| dept-name | | emp-name |-----> | proj-name |
| dept-loc | | emp-sex | | proj-descript |
+-----------------+ | emp-birthdate | | dept-id (FK) |
| dept-id (FK) | +-----------------+
+------------------+
| ^
| |
| +---------------+
v |
+-----------------+ |
| Supervision | |
+-----------------+ |
| supervisor-id (FK) |
| subordinate-id (FK) |
+-----------------+ |
| |
| |
v |
+-----------------+ |
| Management | |
+-----------------+ |
| dept-id (FK) |-----+
| emp-id (FK) |
| start_date |
+-----------------+
+-----------------+
| Participation |
+-----------------+
| emp-id (FK) |
| proj-id (FK) |
| hours |
+-----------------+
+-----------------+
| Dependent |
+-----------------+
| dep-id (PK) |
| dep-name |
| dep-birthdate |
| emp-id (FK) |
+-----------------+
關聯型態及相關限制
Department - Employee: 一對多(1
)
一個部門可以有多個員工,每個員工隸屬於一個部門(dept-id 作為外鍵在 Employee 中)。
Department - Project: 一對多(1
)
一個部門可以承接多個計畫,每個計畫由一個部門承接(dept-id 作為外鍵在 Project 中)。
Employee - Dependent: 一對多(1
)
一個員工可以有多個眷屬,每個眷屬僅有一個員工扶養(emp-id 作為外鍵在 Dependent 中)。
Employee - Supervision: 自己關聯(Employee - Employee)
每個員工最多有一位直屬監督者,但可能會直接監督多位其他員工(supervisor-id 和 subordinate-id 都是 Employee 的外鍵)。
Employee - Project: 多對多(M
)
一個員工可以參與多個計畫,一個計畫也可有多位員工參與(透過 Participation 關聯,emp-id 和 proj-id 作為外鍵)。
Department - Management: 一對一(1:1)
每個部門有一位主管(emp-id 作為外鍵在 Management 中,並與 dept-id 一起確定唯一性)。
這樣設計的 ERD 滿足了公司資料儲存和管理的需求,確保資料庫的一致性和完整性。