2013-02-12 20 views
0

可能是一个相当基本的问题,但请耐心等待。决定使用数组属性还是嵌套模型

我建立具有一些模块化的内容片段,由ContentBlock模型表示的页面。每个ContentBlock至少有一个链接,每个链接都有几个不同的属性。我最初的做法是将这些链接作为一个数组添加到模型中,因为似乎没有任何实际需要将它们单独存储在数据库中,并且它们没有任何自己的逻辑。现在我正在创建一个用于创建/编辑ContentBlock的表单,但是如果链接有单独的嵌套模型,则构建起来会更容易。

我强烈考虑将使用一个模型,但我的直觉是,它是“错误”的一种存储类似的比较琐碎的环节是在DB。鉴于我仍然习惯于使用Rails,这种感觉是否错位?我应该为任何事情创建模型吗?或者我应该在寻找某种最低标准之前?

回答

0

为嵌套模型创建表单肯定更容易。既然你的链接有属性,我会建议制作一个模型。我倾向于为不容易进入领域的概念制作模型。如果您担心查询性能,则始终可以执行eager loading

+0

最终我已经与嵌套模型,只是因为这是最直接,最现实的解决手头的问题,而且也没有一个真正的好理由不是太。我想我只是陷入了过度分析的事情,寻找一种“更好的思想”方式,而不是更实际的方式。 另外,感谢您关于急切加载的提示! – 2013-02-13 04:11:04

0

我觉得取决于你打算管理要做到对这些数据,什么数据表示,等什么多少数据,...

一个项目,我们必须是要建立一些允许的创作一组餐厅的食谱。食谱(一些文字,如说明书等) - >成分,我们去了一个数组,因为这些都是单行文本,并且永远不会超过几个手满。此外,这些成分没有进一步的依赖性。配方只会呈现给html,并且不会有针对它们的搜索(至少不会与db对应)。

另一个项目需要构建一个页面,与您的页面非常相似,但页面的每个“组件”都做了不同的事情,并且与应用中的其他对象(如视频和其他资源,模板等)链接。我们已经看到人们通过wysiwyg或者通过一些JS方式来完成这种类型的东西,并将整个有效载荷/结构保存在数据库中。我们发现两者都非常混乱。想出了

而且其中一个问题是发生了什么事,如果一项资产/关联的对象被错误或故意删除,但住全国各地的许多页面。通过使用模型可以确保如果删除了某些内容,它会在所有链接关联中将其删除(虽然这带来了它自己的问题,但更多的是关于显示比其他任何内容更有意义的页面)。

此外,我们的页面已经成为不同类型具有不同的外观和内部的活动部件的非常大的潜力,这真的是我们可以适当地管理它的唯一途径。

所以我想看看你的要求,并制定相应的计划,语境问题。如果你必须改变它(发生了很多),那么你就会改变它。