要求:你如何強制執行SQL Server可以在2個表中的唯一
- 每個員工都有一個唯一的ID。 (EPID)
- 一個員工只能是以下任何一個,
- FT - 全職
- PT - 兼職
- 任何員工都可以永遠都FT和PT。
- FT & PT有很多不同的領域來捕捉。
實施:
Create Table EmpFT(EPID int primary key, F1, F2, etc)
Create Table EmpPT(EPID int primary key, P1, P2, etc)
--This does not prevent same EPID on both EmpFT and EmpPT.
如何實現數據庫3號?
我正在使用SQL Server 2012標準版。
你應該只有一個表:'創建表EmpFT(EPID int主鍵,IsPTorFT,Col1,Col2等)' – Lamak 2014-10-17 15:04:22
@Lamak,想到了它。但FT和PT有很多不同之處,將它們放在一張桌子上,最後留下很多空白區域。 – Rm558 2014-10-17 15:08:09
@ Sam558然後這是一個3表解決方案。所有員工共用的字段都放在員工表中(EPID,姓名,SSN,僱傭關係等),以及與兼職或全職員工不同的事情進入他們各自的表格,這些表格鏈接到主員工表通過外鍵。 employee_pt(EPID,<兼職字段>)和employee_ft(EPID,<全職字段>) – Greenspark 2014-10-17 15:17:37