首页 > 解决方案 > 如何有效地将 mysql 表拆分为多个表(拆分列而不是行)?

问题描述

例如

旧表: EmployeeID | 员工姓名 | 角色 | 部门ID | 部门名称 | 部门地址

要拆分为

表 1:员工 ID | 员工姓名 | 角色 | 部门编号

表 2:部门 ID | 部门名称 | 部门地址

这是为了将旧数据库中存在的数据迁移到新数据库,我希望有一个更好的模式来避免冗余数据我可能会错过一些数据。有行之有效的方法吗?

标签: mysqldatabase

解决方案


在唯一 ID的基础上工作DepartmentID,您可以使用SELECT DISTINCT从旧表中获取所有唯一的部门 ID,例如

SELECT DISTINCT DepartmentID FROM Old_Table;

MySQL 文档中提供了有关 distinct 关键字的更多信息。

您可能会遇到的一个问题是相同DepartmentID的数据库中的部门名称和部门地址值可能不同。这是因为您的数据库中有传递依赖;我们旨在通过遵守范式来避免的事情。

不幸的是,解决这个问题可能需要手动验证和清理数据,以确保部门名称和部门地址字段的一致性。


推荐阅读