我有一个类似于“节有许多元素”的关系表的场景,所以我想要使用has_many关系模型,就像区段有很多元素一样。
我收到了客户端的一些建议,建议将数据保存为列中的JSON,而不是多个表。
我有点搞不懂我该采用哪种方法。
欢迎提出建议。
这就是我们提出的模式
例: has_many部分元素
表:节
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"}发布于 2013-11-10 20:56:10
将数据作为JSON存储在单个数据库字段中通常是个坏主意。这意味着您将无法使用SQL操作/查询数据--这类操作与将数据存储在数据库中的意义相悖。
我建议在您的section texts 表与texts和 images**.的表之间建立一对多的关系。这可以通过Rails中的[belongs_to](http://guides.rubyonrails.org/association_basics.html#the-belongs-to-association) [has_many](http://guides.rubyonrails.org/association_basics.html#the-has-many-association) 和[has_many](http://guides.rubyonrails.org/association_basics.html#the-has-many-association)关联来实现。
无论如何,创建新表只有在单个部分有多个文本和图像时才会有帮助。如果您的每个部分都有一个文本和一个图像(如示例所建议的),那么可能可以使用一个带有id、type、text和image属性的type表。
https://stackoverflow.com/questions/16977791
复制相似问题