例如
旧表: EmployeeID |员工姓名|角色| DepartmentID |部门名称|部门地址
要拆分为
表1:员工ID |员工姓名|角色| DepartmentID的
表2: DepartmentID |部门名称|部门地址
这是为了将旧数据库中存在的数据迁移到新数据库,我希望有一个更好的模式来避免冗余数据 我知道使用INSERT和SELECT查询为每个表编写查询的直接方法,但我可能会遗漏一些数据。有没有经过验证的方法呢?
答案 0 :(得分:0)
在DepartmentID
是唯一ID的基础上,您可以使用SELECT DISTINCT
从旧表中获取所有唯一的部门ID,例如
SELECT DISTINCT DepartmentID FROM Old_Table;
MySQL documentation中提供了有关distinct关键字的更多信息。
您可能遇到的一个问题是,相同的DepartmentID
可能在您的数据库中具有不同的部门名称和部门地址值。这是因为您在数据库中具有传递依赖性;我们的目标是通过遵守普通形式来避免。
不幸的是,解决此问题可能需要手动验证和清理数据,以确保“部门名称”和“部门地址”字段的一致性。