如何在mySQL数据库中将一组“服务执行”链接到我的员工?

时间:2011-05-03 14:39:17

标签: mysql database-design

我目前有一个员工数据库,可以在我们的网站上显示员工联系信息。我还有一个我们公司提供的所有服务的数据库。每个员工都会执行一项或多项特定服务。我如何将每个员工与他们执行的不同服务联系起来?

2 个答案:

答案 0 :(得分:2)

您可以添加第三个表作为Join表,该表将包含employee和service表条目的键。每个员工在联接表中可能有多行,具体取决于他们提供的服务数量。

http://en.wikipedia.org/wiki/Junction_table

答案 1 :(得分:1)

你可以:

CREATE TABLE `employees_services`(
    `employee_id` INT NOT NULL ,
    `service_id` INT NOT NULL ,
    PRIMARY KEY (`employee_id`, `service_id`)
)

然后当您需要员工的所有服务时:

SELECT * FROM `employees` AS e
INNER JOIN `employees_services` AS es ON e.id = es.employee_id
WHERE ...

或当您需要所有员工提供服务时:

SELECT * FROM `services` AS s
LEFT JOIN `employees_services` AS es ON s.id = es.service_id
WHERE ..