"双向街道"设计

时间:2014-04-04 20:15:15

标签: sql database-design

我有一个项目,我有“公司”和“员工”,我需要能够“订阅”他们两个。

所以我想让它变得简单明了,并在我的SQL表中为公司制作一个表格,然后每个公司都有员工。

事情是,有些员工也有可能“注册”到一家公司。

所以它就像一个双向的街道,我想知道如何正确安排我的SQL表?

我需要能够“订阅”公司以及单个员工(然后在他所工作的所有公司中展示其所有作品)。

1 个答案:

答案 0 :(得分:1)

我会用3个单独的表而不是2个表来执行此操作。

这是我的简化数据库模型。由于我当前登录到SQL Server,因此我使用了该数据库。

CREATE TABLE company 
  ( 
     company_id   INT, 
     company_name NVARCHAR(100) 
  ); 

CREATE TABLE employee 
  ( 
     employee_id   INT, 
     employee_name NVARCHAR(100) 
  ); 

CREATE TABLE employment 
  ( 
     company_id  INT, 
     employee_id INT, 
     startdate   DATE, 
     enddate     DATE 
  );