微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数据库 – NOSQL非规范化数据模型

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

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

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

解决方法

您是对的,数据通常在Nosql数据库中存储为非规范化.

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

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

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

原文地址:https://www.jb51.cc/mssql/79014.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐