0

建立员工管理制度。

CREATE TABLE IF NOT EXISTS `tbl_employees` (
  `employee_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `start_date` DATE NOT NULL,
  `end_date` DATE NOT NULL,
  PRIMARY KEY (`employee_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

一名员工可以工作的公司有 10 家。有数以百万计的员工。基于编码标准,安全性和速度,哪个更好。

  1. 每个公司都有一个单独的表,然后动态引用。例子。tbl_companya_employees、tbl_companyb_employees、tbl_companyc_employees

  2. 将 company_name 列添加到 tbl_employees 表

为什么?谢谢你。

4

2 回答 2

2

最好在员工表中有一个公司列,这将允许您编写适用于任何公司的通用联接。如果您有单独的表,则必须编写代码来为相应的公司生成动态查询。

于 2012-08-17T22:17:14.110 回答
2

添加一个名为 company 的新表。

company 
    company_id int primary_key autoincrement whatever,
    name varchar,
    ... other details ...

然后将 company_id 列添加到员工表中。

更好的是,如果你想保留的不仅仅是员工的 CURRENT 公司,创建一个employee_company_history 表:

employee_company_history
    employee_id
    company_id 
    start_date
    end_date
于 2012-08-17T22:22:33.597 回答