栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

更新非规范化数据库表

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

更新非规范化数据库表

有几种方法可以处理这种情况:

  1. 您可以使用数据库触发器。据我所知,这不是数据库不可知的选项,并且对RoR的支持不存在。如果您的情况绝对不需要数据不一致,这可能是实现目标的最高效的方法,但是我 不是 数据库专家。
  2. 您可以使用批处理操作定期同步两个表。此方法使您的两个表分开,然后每隔很长时间重新同步一次数据。如果您的情况允许这种漂移发生,那么这是一个不错的选择,因为它允许在非工作时间更新数据库。如果您需要每5分钟进行一次同步,则可能需要查看其他选项。这可以通过您的ruby代码来处理,但是需要某种后台作业执行程序(cron,delayed_job,redis等)。
  3. 您可以在Rails模型中使用回调。您可以使用
    "after_update :sync_denormalized_data"
    。该回调将包装在数据库级别的事务中(假设您的数据库支持事务)。您将拥有Rails级别的代码,一致的数据,并且不需要后台进程,而每次都需要进行两次写入。
  4. 一些我没想到的机制…

这些类型的问题是 非常 特定于应用程序的。即使在同一个应用程序中,根据所涉及的灵活性和性能要求,您可能会使用多种方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/506591.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号