我有一个场景让关系表像“一个部分有很多元素”,所以我想到了像一个部分有很多元素的has_many关系模型。
我从客户那里得到了一些建议,要求将数据保存为列中的JSON而不是多个表。
我有点困惑我应该采用哪种方法。
欢迎提出建议。
这是我提议的模型
例如:section has_many elements
表:部分
id type
1 page
表:元素
id type content section_id
1 text <p>lipsum lipsum</p> 1
2 image /images/test.png 1
客户提案是
id type content
1 page {:text => "<p>lipsum</p>", image => "/images/test.png"}
答案 0 :(得分:0)
如果可能的话,请查看像MongoDB这样的记录存储解决方案,它允许您本地存储JSON。这需要一些时间来适应,但如果JSON将是您的主要存储方法,这将是一个明智的选择。
答案 1 :(得分:0)
将数据作为JSON存储在单个数据库字段中通常是个坏主意。这意味着您将无法使用SQL操作/查询数据 - 这种方式无法将数据存储在数据库中。
我建议section
表与texts
和images
的表格之间建立一对多的关系。这可以通过Rails中的belongs_to和has_many关联来实现。
无论如何,只有当一个部分有多个文本和图像时,创建新表才会有所帮助。如果您的每个部分都有单个文本和单个图像(如示例所示),那么使用sections
,id
的单个type
表格可能会很好, text
和image
属性。