更好的数据库设计可以在 mysql 中保存大量员工详细信息

better database design to save large employee details in mysql

我正在开发人力资源和薪资系统。我必须存储员工详细信息,员工详细信息包含以下数据,

我创建了员工 table 并分配了基本详细信息和个人信息。

我的疑问是,对于护照、签证、劳工等其他详细信息,我应该为每个项目创建单独的 table 还是包括员工 table 本身? 或者有没有其他更好的方法?

将所有内容保持一致 table 将使数据输入和索引编制更加容易。但是,如果您计划使用多个 table,那么您可以使用 id 作为各种 table 之间的公共属性。请注意,虽然将信息分组到多个 table 中似乎是一种有组织的方式,但它增加了信息检索的复杂性。或多或少,一切都取决于项目的目标和使用模式。

您 table 中的许多信息可能会随时间发生变化(work_sites、grades_id 等)您可以考虑将这些信息单独保存在 table 按日期键入,因为您可能需要回答 ("Where was bill working last January?") 类型的问题。

我还会检查您的 security/privacy 要求,这取决于它们的严格程度,将护照号码等存储在一个单独的更严格限制的 table 中可能是个好主意。