我想创建一个网站,用户可以在其中创建自己的教学资源,例如嵌入图像的文本块等。
我应该如何将它存储在 Rails 的数据库中?我听说 mongoDB 非常适合存储文档,但我计划将 postgresql 用于用户数据库等,并且读过通常你不应该混合不同类型的数据库
我确定这是一个显而易见的问题,但我无法在任何地方找到答案......
谢谢,
格雷厄姆
我想创建一个网站,用户可以在其中创建自己的教学资源,例如嵌入图像的文本块等。
我应该如何将它存储在 Rails 的数据库中?我听说 mongoDB 非常适合存储文档,但我计划将 postgresql 用于用户数据库等,并且读过通常你不应该混合不同类型的数据库
我确定这是一个显而易见的问题,但我无法在任何地方找到答案......
谢谢,
格雷厄姆
你可以做几件事。
1.
对 Users 表和 TeachingResources 表都使用PostgreSQL。您可以简单地使用content
类型的列text
来保存所有数据。
2.
使用PostgreSQL,但使用该HStore
功能基本上存储您选择的对象的散列,这为您提供了更大的灵活性。默认情况下, Rails 4 将支持此功能,但您也可以使用gem。
3.
在您的应用程序中结合使用PostgreSQL 和 MongoDB(或任何其他 NoSQL 解决方案)。我不认为这是一个糟糕的解决方案,但它确实使您超出了 Rails 中的“新用户约束”,因此这可能不是开始的最佳途径
4.
一路走NoSQL 。您没有理由不能将 MongoDB 用于您的用户模型。但是,您是对的,这种类型的数据存储不能提供完整的ACID保证,因此请小心产品规划并了解它的漏洞(以及它的优势)。