首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mongodb和mongomapper

mongodb和mongomapper
EN

Stack Overflow用户
提问于 2010-06-23 07:19:44
回答 1查看 496关注 0票数 1

我有一个rails应用程序,目前使用activerecord来存储和查询产品。

每个产品都有一个类别和子类别,每个子类别都是由我可以在应用程序中创建的多个字段定义的。因此,当用户想要输入特定的产品时,他们会被按下相关的表单字段。

这变得非常复杂,自从听说mongodb和mongomapper以来,我想或者希望我从一开始就使用mongomapper创建了它!

问题是,我想知道在mongodb中对此应用程序建模的最佳方式?

我在考虑建立一个具有公共字段的procuct模型,然后让类别模型继承产品模型中的不同字段。

这听起来对吗?

还有一个问题是,我希望用户能够在应用程序中创建自己的类别和字段。例如,当用户创建一个带有速度和车门数量等字段的汽车类别时,我如何才能做到这一点。然后,我需要能够使用这些字段为将来输入的汽车创建一个表单。

任何想法,指针或任何人都可以帮助我的例子将是伟大的。

先谢谢你,瑞克

EN

回答 1

Stack Overflow用户

发布于 2010-06-24 11:52:33

好吧,我不是Ruby/Mongomapper专家,所以我不能将其映射到“模型”中。然而,如果你从Mongo的角度来看这一点,下面是你可能想要的数据在Mongo中的样子。

集合:类别

代码语言:javascript
复制
{"_id" : "car"}
{"_id" : "vintage_car", "parent" : "car", "fields" : ["year" : "integer", "original_parts" : "boolean", "upgrades" : "text"] }

集合:产品

代码语言:javascript
复制
{"_id" : "1234", "name" : "Model-T", "category" : "car", "sub-category" : "vintage_car", "values" : ["year" : 1942, "original_parts" : false, "upgrades : "XM Radio"] }

所以这里的代码非常简单。您有一个包含所有类别和子类别的集合。如果一个对象是一个“子类别”,它将有一个“父”字段设置。如果没有"parent“字段,则该对象是"Category”。

每个子类别都有一个“field”元素。“field”实际上是一个配对数组。这将使渲染变得容易。如果有人输入一辆老式汽车,您可以查找“老式汽车”类别,然后遍历“字段”以呈现相应的输入框。我使用了像“整数”和“布尔值”这样简单的东西,但你真的可以在这里放任何你想要的东西(“日期选择器”,“复选框”,...)一切都看你的了。

现在,产品本身基本上存储了对Category和Sub-category的引用。它还存储您输入的所有字段的值。

因此,Product拥有它所需的所有数据,这应该会使每个产品非常容易呈现。加载Product和适当的Sub-Category,您将拥有动态呈现页面所需的所有信息。

编辑

作为对评论的回复,Category中的“field”可以使用度量单位来构建:

..."fields" : [{"length","meters","float"},{"weight","kg","float"},...]

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3097842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档