我想创建一个网站,用户可以在其中创建自己的教学资源,例如:嵌入图像等的文本块。
我应该如何将它存储在rails中的数据库中?我听说mongoDB很适合存储文档,但我打算在用户数据库等中使用postgresql,并且已经读过,通常你不应该混用不同类型的db
我确信这是一个显而易见的问题,但我无法在任何地方找到答案......
谢谢,
格雷厄姆
答案 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保证是正确的,因此请注意产品规划并了解其漏洞(以及其优势)。