【发布时间】:2011-04-20 20:25:40
【问题描述】:
我听到很多关于无模式(通常是分布式)数据库系统的讨论,例如 MongoDB、CouchDB、SimpleDB 等...
虽然我可以理解它们对于某些目的可能很有价值,但在我的大多数应用程序中,我都试图保留具有特定类型的特定数量字段的对象,并且我只是自动在关系模型中思考。我一直在考虑具有唯一整数 ID 的行、null/not null 字段、SQL 数据类型以及用于查找集合的选择查询。
虽然我被这些新系统的分布式特性和简单的 JSON/RESTful 接口所吸引,但我不明白松散类型的键/值哈希对我的开发有何帮助。为什么松散类型、无模式的系统有利于保持干净的数据集?例如,当它们可能没有日期时,我如何才能找到日期在 x 和 y 之间的所有项目?有join的概念吗?
我知道许多系统都有自己的差异和优势,但我想知道范式的差异。我想这是一个开放式的问题,但也许社区的答案和他们个人看到这些系统优势的方式将有助于启发我和其他人什么时候想要使用这些(诚然更时髦的)系统而不是传统的 RDBMS。
【问题讨论】:
-
MongoDB(至少对于 Mongoose)是 NOT 无模式的。
标签: database nosql key-value-store document-oriented-db schemaless