数据库实施

时间:2013-09-24 09:41:14

标签: database-schema

我在将一些规范转换为sql表时遇到了一些麻烦:

方案如下:

员工(已有EMPLOYEE表)可以有一个或多个员工列表,员工可以属于这些列表中的一个或多个。

示例: employee_1有2个列表,list_1_1和list_1_2。

list_1_1包含employee_2,employee_3和employee_4。

list_1_2包含employee_3和employee_5。

employee_1又可以属于另一名员工的名单。

我首先想到的是一个包含这些列的表:

LIST_NAME; owner_id; EMPLOYEE_ID

然后,该表的主键是什么?我确信有更好的方法来实现这一目标,但我被困住了。

2 个答案:

答案 0 :(得分:0)

可以有1个表emp: Emp Id | EmpID为PK的Emp Name ...等

然后Emp_List_Map表: EmpID | ListId(EmpId和ListId)为PK

然后列出表: ListId | EmpID与(ListId和EmpID)为PK

这就是我的想法..

答案 1 :(得分:0)

您需要一个“员工清单”会员资格表。这与用户和角色的概念非常相似,可以将每个用户分配给零个或多个角色。

有关示例数据模型的详细信息,请参阅How to design a user/role schema in a SQL Server database?;只需将“user”重命名为“employee”,将“role”重命名为“list”。