在数据库中存储数组:JSON与序列化数组

使用ruby-on-rails,我想存储3个元素的数组:帖子的最后3条评论。我知道我可以将Comment表加入Post

1,但是我会避免出于扩展目的而进行大量的请求。

所以我想知道什么是存储这三个元素的最佳方法,因为我想在每次发表新评论时轻松地更新它们:删除最后一条评论并添加新评论。

正确的方法是什么?将其存储在序列化数组还是JSON对象中?

回答:

您可以使用ActiveRecord的serialize声明存储数组和哈希:

class Comment < ActiveRecord::Base

serialize :stuff

end

comment = Comment.new # stuff: nil

comment.stuff = ['some', 'stuff', 'as array']

comment.save

comment.stuff # => ['some', 'stuff', 'as array']

您可以指定对象类型应等于的类名(在这种情况下Array)。这更明确,也更安全。分配第一个值时,您也不必创建数组,因为您可以将其追加到现有(空)数组上。

class Comment < ActiveRecord::Base

serialize :stuff, Array

end

comment = Comment.new # stuff: []

comment.stuff << 'some' << 'stuff' << 'as array'

您甚至可以使用名为store的更整洁的版本:http

:

//api.rubyonrails.org/classes/ActiveRecord/Store.html

这应该使用内置方法处理您的用例。

以上是 在数据库中存储数组:JSON与序列化数组 的全部内容, 来源链接: utcz.com/qa/409656.html

回到顶部