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. tbl_employeesテーブルにcompany_name列を追加します

なぜ?ありがとうございました。

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列をemployeeテーブルに追加します。

従業員の現在の会社よりも多くを保持したい場合は、employee_company_historyテーブルを作成することをお勧めします。

employee_company_history
    employee_id
    company_id 
    start_date
    end_date
于 2012-08-17T22:22:33.597 に答える