gpt4 book ai didi

database - 在新数据库设计的同时维护数据库遗留表数据

转载 作者:搜寻专家 更新时间:2023-10-30 23:22:47 25 4
gpt4 key购买 nike

我目前正在从事一个项目,其最终目标是将遗留系统转换为真正的 N 层架构。该项目的初始部分涉及将底层数据库转换为真正的关系设计。

底层数据库当前运行在 IBM iSeries 上。这些表是使用 DDS 定义的,包含大量冗余数据、没有完整性检查和设计不当的 key 等。基本上将它们重构为完全规范化的设计是行不通的。

新表将从头开始设计。它们也将位于相同的 iSeries 上,但将使用 DDL 进行定义。这还将涉及重新编写整个应用程序中的任何插入或更新代码以利用新表。然而,有大量负责报告、显示等的遗留应用程序此时不会被重写,并且仍会从原始表格中读取。因此,我们需要使旧表中的数据与新表数据保持同步。我想知道是否有人做过类似的事情或有任何建议?我目前正在考虑:

1) 从新表 A 插入、更新、删除的存储过程也会对匹配的遗留表 B 做同样的事情。在某些时候需要修改存储过程以停止同步表 B

2) 将触发器放在表 A 上,它也会修改表 B。然后触发器将被删除......存储过程不需要更改,但这仍然适用于事务管理吗?

3) 删除遗留表 B 并将其重新创建为表 A 的 View 。不确定这是否有效,因为表 B 在键控访问上工作,我相信 View 不支持这个?

有兴趣听听任何人的想法吗?

干杯

最佳答案

我赞成数字 3。我假设您将运行一些转换过程,从遗留表 B 中获取现有数据并将其放入新表 A(或者更可能是一组新表,因为它听起来像遗留表B 是非规范化的)。

如果您负责报告、显示等的遗留应用不需要进行任何更新,那么使用 View 是理想的情况。我认为保留两份单独的数据副本(一份规范化,一份非规范化)会让人头疼,尤其是当经理的 TPS 报告与他在新系统中输入的内容不匹配时。至少只有一份数据,您不必担心在两个地方执行数据修复。

关于database - 在新数据库设计的同时维护数据库遗留表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4202449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com