【发布时间】:2011-08-16 01:09:41
【问题描述】:
在我真正深入研究 MongoDB 几天之前,我想我会问一个非常基本的问题,即我是否应该深入研究它。我基本上没有使用nosql的经验。
我确实阅读了一些关于文档数据库的一些好处,我认为对于这个新应用程序来说,它们会非常棒。为许多类型的对象(许多 m-to-m 关系)和子类做 favourites、cmets 等总是很麻烦 - 处理起来有点痛苦。
我还有一个结构在 SQL 中定义会很痛苦,因为它非常嵌套,并且比 15 个不同的表更好地转换为文档。
但我对一些事情感到困惑。
是否仍需要保持数据库标准化?我真的不想更新多条记录。这仍然是人们在 MongoDB 中设计数据库的方式吗?
如果用户收藏了一本书,并且此选择仍存储在用户文档中,但随后该书被删除,会发生什么情况?如果没有外键,关系如何分离?我是否要亲自负责删除所有链接?
如果用户收藏了一本不再存在的书并且我查询它(某种连接),会发生什么情况?我必须在这里做任何容错吗?
【问题讨论】:
-
当你做像 MySQL 这样的 SQL 数据库时,它们不会自动删除表之间的链接,即使通过外键连接也是如此。他们唯一做的就是阻止你删除另一个通过外键连接的表中的一行,但即使在那里也只有你告诉它。为什么你会认为在 NoSQL 中会有所不同?
-
@trysis,谷歌删除级联。
-
是的,我忘了我为什么这么说,那是很久以前的事了。如果我因过去的无知而误导了任何人,我深表歉意。
标签: mongodb foreign-keys normalization database nosql