Schemaless是目前在NoSql世界中浮动的一个术语。
发布于 2013-03-23 16:58:37
模式少有点用词不当,最好把它看作是:
因此,虽然假设的模式-无模式NoSQL数据存储在理论上允许您存储任何您喜欢的数据(通常是键值对,在文档中),而不事先知道键或数据类型,除非您有某种机制来检索和使用这些数据。因此,模式基本上是部分地从RDBMS移到应用程序代码中。我说的部分原因是您将索引添加到文档集合中,或者为了性能而对数据进行分区,因此NoSQL数据库管理系统将在本地定义部分模式,并可能通过唯一的约束强制执行。
关于向存储中的文档/对象添加附加属性的问题。根据文档(未使用的空间)周围填充的大小,在其物理数据块中,向文档添加更多的键值对可能导致文档不得不物理地移动到更大的连续存储块,并重新构建相关索引。如果计划在频繁使用的查询中使用新键,那么还需要添加一个合适的新索引,这显然需要一些物理存储,最初构建需要一段时间,并可能导致您要求sysadmin为DBMS分配更多内存,从而允许缓存新索引。
发布于 2013-04-04 18:49:11
有点晚了,但是当我再次搜索这个主题的时候,我发现了这篇文章。
http://tech.pro/tutorial/1189/basics-of-ravendb-nosql
参考这篇文章的第3节,我会再引用一遍。
向RavenDB添加和更改数据模型是再简单不过的了。因为它是一个NoSQL数据库,所以它可以非常简单地处理模型的添加和删除。如果将属性添加到类中,则该属性将设置为该类型的默认值。如果删除属性,则在反序列化时将忽略该值。不再使用SQL脚本进行模糊处理。
这似乎是RavenDB的合理答案。
https://stackoverflow.com/questions/15589184
复制相似问题