加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

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

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

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

解决方法

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读