【发布时间】:2015-09-18 13:21:18
【问题描述】:
假设您有一个路由器的默认设置,并且您想为某个路由器自定义一些设置。
哪种方法更好?
将默认设置保存在数据库内的一个文档中,并将修改保存在另一个文档中,还是将所有配置与修改后的设置一起保存在一个文档中?
假设这里有许多路由器具有不同的配置或修改默认设置。
【问题讨论】:
标签: mongodb azure-cosmosdb document-database
假设您有一个路由器的默认设置,并且您想为某个路由器自定义一些设置。
哪种方法更好?
将默认设置保存在数据库内的一个文档中,并将修改保存在另一个文档中,还是将所有配置与修改后的设置一起保存在一个文档中?
假设这里有许多路由器具有不同的配置或修改默认设置。
【问题讨论】:
标签: mongodb azure-cosmosdb document-database
我不确定在这种情况下“路由器”是什么,但以下是做出此类数据建模决策的一些一般准则:
由于没有跨文档连接功能,与关系数据库相比,您更倾向于使用单个文档方法。
您需要考虑可能发生的变化、变化的方式和频率?因此,例如,如果默认值可能会更改,那么默认值+差异方法可能不会提供任何优势。您必须浏览每个不同的文档,并确保它为您更改的任何内容指定了旧默认值,除非您可以更改现有用户设置。
使用单文档策略更改设置的逻辑应该更简单,以便有利于单文档方法。我认为您甚至可以完全避免使用将默认值放入数据库。只需将它们放入您的代码中即可。
另外,我怀疑您阅读这些配置的次数要比修改它们的次数多很多倍。单文档方法只需要往返数据库一次,因此再次受到青睐。
希望对您有所帮助。
【讨论】: