更好的数据库设计可以在 mysql 中保存大量员工详细信息
better database design to save large employee details in mysql
我正在开发人力资源和薪资系统。我必须存储员工详细信息,员工详细信息包含以下数据,
- 基本详情
- 个人信息
- 护照信息
- 签证信息
- 工卡信息
- 酋长国 ID 信息
- 驾照详情
- 保险详情
我创建了员工 table 并分配了基本详细信息和个人信息。
我的疑问是,对于护照、签证、劳工等其他详细信息,我应该为每个项目创建单独的 table 还是包括员工 table 本身?
或者有没有其他更好的方法?
将所有内容保持一致 table 将使数据输入和索引编制更加容易。但是,如果您计划使用多个 table,那么您可以使用 id
作为各种 table 之间的公共属性。请注意,虽然将信息分组到多个 table 中似乎是一种有组织的方式,但它增加了信息检索的复杂性。或多或少,一切都取决于项目的目标和使用模式。
您 table 中的许多信息可能会随时间发生变化(work_sites、grades_id 等)您可以考虑将这些信息单独保存在 table 按日期键入,因为您可能需要回答 ("Where was bill working last January?") 类型的问题。
我还会检查您的 security/privacy 要求,这取决于它们的严格程度,将护照号码等存储在一个单独的更严格限制的 table 中可能是个好主意。
我正在开发人力资源和薪资系统。我必须存储员工详细信息,员工详细信息包含以下数据,
- 基本详情
- 个人信息
- 护照信息
- 签证信息
- 工卡信息
- 酋长国 ID 信息
- 驾照详情
- 保险详情
我创建了员工 table 并分配了基本详细信息和个人信息。
我的疑问是,对于护照、签证、劳工等其他详细信息,我应该为每个项目创建单独的 table 还是包括员工 table 本身? 或者有没有其他更好的方法?
将所有内容保持一致 table 将使数据输入和索引编制更加容易。但是,如果您计划使用多个 table,那么您可以使用 id
作为各种 table 之间的公共属性。请注意,虽然将信息分组到多个 table 中似乎是一种有组织的方式,但它增加了信息检索的复杂性。或多或少,一切都取决于项目的目标和使用模式。
您 table 中的许多信息可能会随时间发生变化(work_sites、grades_id 等)您可以考虑将这些信息单独保存在 table 按日期键入,因为您可能需要回答 ("Where was bill working last January?") 类型的问题。
我还会检查您的 security/privacy 要求,这取决于它们的严格程度,将护照号码等存储在一个单独的更严格限制的 table 中可能是个好主意。