0

我认为这是一个长镜头,但它是这样的:

基本问题是:开发团队如何开始修复大型受损数据集的数据完整性?

我正在帮助的公司拥有一个庞大的 MySQL/PHP5 系统,其中包含几年的杂乱、无效数据、损坏的引用等。最重要的是,这些数据引用了一些在线服务的数据,例如 Google AdWords。

所以本地数据库有问题,本地和远程(例如AdWords)之间的关系也有问题,使问题更加复杂。

有没有人可以分享他们开始修复数据完整性的提示、技巧或最佳实践?并在一个快速、持续地添加和更新的系统中保持数据完整性?

4

2 回答 2

0

最大的问题是确定您打算对问题数据做什么:

  • 没有什么
  • 从保存在其他地方并通过代码访问的数据重建
  • 手动重建数据
  • 删除它(或最好将其存档)

为了做到这一点,您需要确定问题数据如何影响系统/组织以及解决方案将如何影响系统/组织。

这是您的第一级分类。一旦你有了这个,你需要开始识别特定的问题,并从中派生出一组定义错误模式的语义规则。

然后,这应该允许您定义所需的修复,有效地确定工作的优先级并规划您的资源利用。它还应该允许您确定优先级、计划和部分识别根本原因的消除。

我不确定你对“巨大”的定义是什么——但我会推断这意味着有很多程序员为它做出了贡献——在这种情况下,你当然需要建立标准和程序来管理未来的数据完整性,就像您对性能和安全性所做的那样。

您定义的规则是持续数据管理的起点,但您应该考虑如何在未来应用这些规则 - 为每个表添加时间戳字段/维护引用违反特定规则的行的表意味着您赢了每次您要检查数据时都不需要处理所有数据 - 只是自上次检查后发生变化的数据 - 跟踪从违规列表中删除的案例以及那些案例是个好主意正在添加。

一定要记录所应用的修复和相应的规则违规 - 并分析数据以识别热点,重构可能会导致更可维护的代码。

于 2010-09-01T11:21:46.253 回答
0

根据需求和存在多少“损坏”,谨慎的做法可能是创建一个新数据库并修改应用程序以并行更新两者。

可以将有效数据导入到新的 d/b 中,然后一系列渐进式提取可以添加有效数据并导入这些数据,直到努力增加到尝试恢复严重损坏的数据不再有意义的程度。毫无疑问,未损坏的不完整数据库比损坏的数据库更好、更有用——只要它是损坏的,就不能称为“完整”。

于 2010-08-31T23:03:49.123 回答