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

前端之家收集整理的这篇文章主要介绍了数据库 – NOSQL非规范化数据模型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我多次读到NOsql数据库中的数据存储为非规范化.例如,考虑国际象棋游戏记录.它不仅可以包含参与国际象棋游戏的玩家ID,还可以包含该玩家的名字和姓氏.我想这样做是因为在NOsql中无法进行连接,因此如果您只是复制数据,您仍然可以在一次调用中检索所需的所有数据,而无需手动应用程序级别处理数据.

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

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

解决方法

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

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

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

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

猜你在找的MsSQL相关文章