【问题标题】:MYSQL Event to update another database tableMYSQL 事件更新另一个数据库表
【发布时间】:2010-05-05 20:33:49
【问题描述】:

我刚刚接手了一个客户的项目,数据库架构一团糟。我想重命名一组字段,使其成为关系数据库。

但是这样做将是一个艰苦的过程,因为他们也有一个运行它的 API。所以这个想法是创建一个新的数据库并开始重写代码来使用它。但我需要一种方法让这些表在此过程中保持同步。

您是否同意我应该使用 MYSQL EVENT 来不断更新插入/更新和删除的新表??

或者你能推荐一个更好的方法吗?

希望大家多多指教!!

感谢我收到的任何意见

【问题讨论】:

  • 如果您还必须重写 API,从触发器开始可能是有意义的,但随后开始制作两个单独的(插入、删除等)一个到旧表,一个到旧表到新的。这将允许您并行运行代码并测试它是否按预期工作。您可能还需要考虑编写与现有系统分开的新代码和数据库模式。然后计划转换数据并切换到新系统。
  • 嗨,史蒂夫,这正是我们要做的。我们希望重新编写 API,然后也使用 API 重建站点。我认为触发器是基于时间的。因此,我为什么要问。
  • 没有触发器不是基于时间而是基于动作(即插入、删除等)参见此处dev.mysql.com/doc/refman/5.0/en/create-trigger.html

标签: php mysql database database-design


【解决方案1】:

我在我的项目中遇到了同样的问题。我做了和你一样的事情——把整个数据库写成新的。我们开发了新数据库和合适的代码,完成这项工作后,我们制作了一个迁移脚本(小型应用程序),用于从旧数据库迁移到新数据库。

希望这能给你一些想法......

【讨论】:

  • 谢谢,但这是不可能的。这将是一个缓慢的进展,因为我们重新创建数据库然后遍历该站点上的所有查询并且重新启动将是危险的。我们需要一种方法来逐步实施。
【解决方案2】:

我也遇到了同样的问题,并且在用户输入点复制数据(基本上同时保存到两个数据库,因为原始模式缺少所有必需的信息)。经过几个月的开发,客户意识到他要迁移到一个全新的数据库,并认为这太冒险了(我同意他的观点)。

因此,我建议向您的客户明确说明您将实施一个新数据库,而不是对当前数据库进行迭代重构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 2018-06-17
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    相关资源
    最近更新 更多