gpt4 book ai didi

php - 将 mysql 表映射到具有不同字段名称的新表的最佳方法

转载 作者:行者123 更新时间:2023-11-29 06:34:19 28 4
gpt4 key购买 nike

我在工作中遇到迁移问题。现在我们有一个数据库,供我们的网站和后台工具使用。作为尝试改进网站代码的一部分,我们为数据库中的多个表设计了一个新模式。

让我们以产品表为例。它对描述、名称、产品代码、价格、创建日期等字段相当标准。我们现在有一个新表,我们称它为 better_products。问题是,我们可以随心所欲地更改网站代码,但我们无法触及严重依赖旧产品表的后台工具代码。

我们最终会遇到这样一种情况,即后台工具正在写入旧产品表,而网站正在从新的 better_products 表中读取数据。问题是,我们如何使它们保持同步?我在谷歌上搜索了一段时间,到目前为止,最常见的解决方案是使用触发器,并将传入数据映射到新表。我已经为产品编写了 AFTER INSERT 触发器,但是当我去编写 UPDATE 触发器时,结果发现无法遍历触发器内更改的字段并将它们映射过来。这意味着手动写出字段 la 'IF NEW.fieldName <> OLD.fieldName THEN' 这是丑陋的,需要手动列出字段。

有没有更好的方法?一个半更好的方法?除了逐个字段地写这个之外还有什么?有没有比使用触发器更好的做法?

请不要建议更改后台工具,因为目前这不是一个现实的选择。这是有计划的,但还不够快,我们无法等待。

最佳答案

在 mysql 数据库中创建一个名为 better_products 的 View ,它是旧产品的选择语句,但具有已更改的列名的别名。

最后,您可以更新后台应用程序中的代码,以使用此 View 。一旦两个系统都使用新 View ,该 View 就可以替换为名为 better_products 的实际表,该表复制了旧表中的所有数据。

关于php - 将 mysql 表映射到具有不同字段名称的新表的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25900489/

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