NOSQL非规范化数据模型

 落墨 发布于 2022-12-08 20:43

我多次读到NOSQL数据库中的数据存储为非规范化.例如,考虑国际象棋游戏记录.它不仅可以包含参与国际象棋游戏的玩家ID,还可以包含该玩家的名字和姓氏.我想这样做是因为在NOSQL中无法进行连接,因此如果您只是复制数据,您仍然可以在一次调用中检索所需的所有数据,而无需手动应用程序级别处理数据.

我不明白的是,现在当你想要更新国际象棋选手的名字时,你必须编写一个查询来更新该玩家参与的国际象棋游戏记录以及该玩家的玩家记录.这似乎是一个巨大的性能开销,因为数据库必须搜索该玩家参与的所有游戏,然后更新每个记录.

数据是否经常像我的例子一样存储为非规范化?

1 个回答
  • 您是对的,数据通常在NoSQL数据库中存储为非规范化.

    更新的问题部分在于"最终一致性"一词的来源.

    在您的示例中,当您更新播放器的名称(不是常见事件,但可能发生)时,您将发出后台作业以更新所有其他记录的名称.是的,在更新发生时,您可以检索旧值,但最终数据将保持一致.由于我们不是在这里编写ATM软件,因此性能/一致性权衡是可以接受的.

    您可以在此处找到更多信息:http://www.allbuttonspressed.com/blog/django/2010/09/JOINs-via-denormalization-for-NoSQL-coders-Part-2-Materialized-views

    2022-12-11 03:12 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有