itsource

데이터베이스에 어레이 저장: JSON vs. serialized 어레이

mycopycode 2023. 3. 18. 08:37
반응형

데이터베이스에 어레이 저장: JSON vs. serialized 어레이

Ruby-on-rails에서는 포스트의 마지막 3개의 코멘트를 저장하고 싶습니다.Post에 코멘트 테이블을 추가할 수 있다는 것은 알고 있습니다만, 스케일링의 목적으로는 이 어려운 요구는 피하고 싶습니다.

그래서 이 3가지 요소를 저장하는 가장 좋은 방법이 무엇인지 궁금했습니다.새로운 코멘트가 나올 때마다 간단하게 갱신하고 싶기 때문입니다.마지막 코멘트를 삭제하고 새로운 코멘트를 추가합니다.

시리얼 어레이 또는 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'

스토어라고 하는 더 새로운 버전을 사용할 수도 있습니다.http://api.rubyonrails.org/classes/ActiveRecord/Store.html

이것은 빌트인 방식을 사용하여 사용 사례를 처리할 것입니다.

언급URL : https://stackoverflow.com/questions/21312278/storing-arrays-in-database-json-vs-serialized-array

반응형