如何在Rails应用程序中存储用户生成的内容

时间:2012-06-22 14:11:39

标签: ruby-on-rails ruby mongodb

我想创建一个网站,用户可以在其中创建自己的教学资源,例如:嵌入图像等的文本块。

我应该如何将它存储在rails中的数据库中?我听说mongoDB很适合存储文档,但我打算在用户数据库等中使用postgresql,并且已经读过,通常你不应该混用不同类型的db

我确信这是一个显而易见的问题,但我无法在任何地方找到答案......

谢谢,

格雷厄姆

1 个答案:

答案 0 :(得分:1)

你可以做几件事。

1. 对Users表和TeachingResources表使用 PostgreSQL 。您只需使用content类型的text列即可保存所有数据。


2. 使用 PostgreSQL ,但使用HStore功能基本上是您选择的store a hash of objects,这为您提供了更大的灵活性。 Rails 4将support this by default,但您也可以使用gem


3. 在您的应用中使用 PostgreSQL和MongoDB 的组合(或任何其他NoSQL解决方案)。我不认为这是一个糟糕的解决方案,但它确实让你超出了Rails中的“新用户约束”,所以这可能不是开始的最佳途径


4. 一路走 NoSQL 。您没有理由不能将MongoDB用于您的用户模型。但是,您认为这种类型的数据存储无法提供完整的ACID保证是正确的,因此请注意产品规划并了解其漏洞(以及其优势)。