mysql - 如何有效地将 mysql 表拆分为多个表(拆分列而不是行)?
问题描述
例如
旧表: EmployeeID | 员工姓名 | 角色 | 部门ID | 部门名称 | 部门地址
要拆分为
表 1:员工 ID | 员工姓名 | 角色 | 部门编号
表 2:部门 ID | 部门名称 | 部门地址
这是为了将旧数据库中存在的数据迁移到新数据库,我希望有一个更好的模式来避免冗余数据我可能会错过一些数据。有行之有效的方法吗?
解决方案
在唯一 ID的基础上工作DepartmentID
,您可以使用SELECT DISTINCT
从旧表中获取所有唯一的部门 ID,例如
SELECT DISTINCT DepartmentID FROM Old_Table;
MySQL 文档中提供了有关 distinct 关键字的更多信息。
您可能会遇到的一个问题是相同DepartmentID
的数据库中的部门名称和部门地址值可能不同。这是因为您的数据库中有传递依赖;我们旨在通过遵守范式来避免的事情。
不幸的是,解决这个问题可能需要手动验证和清理数据,以确保部门名称和部门地址字段的一致性。
推荐阅读
- c# - c#通过多个文件散列
- c++ - 在 c++ 中使用四个值 a、b、c、d 生成边图
- php - Prestashop - 在订单中添加产品,更新订单详情
- haxe - 如何点击绘制的形状
- c++ - 无法使用随机参数创建二维数组
- kubernetes - 无效的 kube-config 文件。当我在 pod 中使用 kubernetes 客户端 python 时找不到配置
- .net - 控制器无法识别 JWT 角色.net core 5
- wso2 - 是否可以在 HTTP Endpoint 中使用特殊字符作为变量而不对其进行编码?
- java - 模块化配置类组装 - 设计问题
- r - 使用(如果可能)函数方法基于正则表达式 (regex) 的向量修改向量