NoSQL与关系编码样式

时间:2010-05-27 21:47:33

标签: database data-structures nosql

当构建使用存储在RDBMS中的数据的对象时,通常很清楚你要回来的东西,正如被查询的表和列所指示的那样。但是,在处理NoSQL,基于文档的系统时,检索的内容不太清楚。

跟踪存储数据结构的常用方法是什么?

3 个答案:

答案 0 :(得分:0)

这取决于司机。使用NORM驱动程序,您可以“对数据库”进行“序列化”和“反序列化”对象的实例。当db中有一个额外的字段在类定义中不存在时,它将抛出一个错误。这是NORM的默认行为,但它们增加了使其更灵活的可能性。

请在此处阅读:http://groups.google.com/group/norm-mongodb/browse_thread/thread/31102ec553a50e19

答案 1 :(得分:0)

这不仅取决于您使用的数据库,还取决于您编写的语言/框架。

大多数自以为是的框架都期望某种类型的ODM,您可以在其中定义在模型中强制执行的模式(例如Rails),而其他框架可以让您做任何您想做的事情,这会让您面临多个数据的风险格式,不知道该怎么做...

对于MongoDB,我玩弄了一个软模式的概念,其中每个集合(表)都有一个标题为“schema”的文档,并在一个名为“definition”的嵌入数组中定义了不同的元素及其数据类型。这允许我基于每个集合生成动态支架,并且在与非ODM平台集成时非常方便 - 在我的例子中,Joomla。

另一种方法是将这些模式定义存储在一个名为schemas或schemata的单独集合中。或者某些集合。

您肯定希望在代码中锁定某种模式,以确保您的数据采用可预测的格式;无论何时你的模式发生变化,这都很重要,并且它们总是会发生变化。

答案 2 :(得分:0)

还有一些框架,你的编码风格不会像playOrm那样改变,它允许你将关系数据存储在noSQL存储中并执行连接。诀窍是分区数据和可扩展的SQL,因此它可以很好地扩展,你仍然可以像过去那样查询数据。