[RUBY-ON-RAILS] 데이터베이스에 배열을 저장 : 직렬화 된 배열 대 JSON
RUBY-ON-RAILS데이터베이스에 배열을 저장 : 직렬화 된 배열 대 JSON
게시물의 마지막 3 개 댓글 : 루비 레일에로, 나는 3 개 요소의 배열을 저장할. 나는 포스트 하나에 코멘트 테이블을 조인 할 수 알지만, 목적 스케일링이 무거운 요청을 할 피할 것이다.
마지막 코멘트를 제거하고 새로운 하나를 추가 : 내가 쉽게 새로운 댓글이있을 때마다 그들을 업데이 트하려는 것처럼, 그 3 개 요소를 저장하는 가장 좋은 방법은 무엇인지 궁금 그래서.
이 작업을 수행하는 올바른 방법은 무엇입니까? 그것은 직렬화 배열이나 JSON 객체에 저장?
해결법
-
==============================
1.당신은 액티브의 직렬화 선언을 사용하여 배열과 해시를 저장할 수 있습니다 :
당신은 액티브의 직렬화 선언을 사용하여 배열과 해시를 저장할 수 있습니다 :
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']
당신은 객체 유형 (이 경우 배열에)에 동일해야하는 클래스 이름을 지정할 수 있습니다. 이것은 더 명시하고 조금 더 안전합니다. 또한 기존 (빈) 배열에 추가 할 수 있습니다 때문에 당신이 첫 번째 값을 할당 배열을 만들 필요가 없습니다.
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 : 당신은 깔끔한 버전이라고 저장소를 사용할 수 있습니다
이것은이 방법을 내장하여 사용 사례를 처리해야합니다.
from https://stackoverflow.com/questions/21312278/storing-arrays-in-database-json-vs-serialized-array by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 어떻게 레일에서 다른 형식의 부분을 렌더링합니까? (0) | 2020.02.13 |
---|---|
[RUBY-ON-RAILS] 이유에 대해 종종 추천 default_scope 레일을 사용? (0) | 2020.02.13 |
[RUBY-ON-RAILS] has_many를 통해 대 has_and_belongs_to_many (0) | 2020.02.13 |
[RUBY-ON-RAILS] 다형성 협회는 같은 모델의 여러 단체와 레일 (0) | 2020.02.13 |
[RUBY-ON-RAILS] SCSS 파일의 레일 4 이미지 경로, 이미지 URL 및 자산 URL이 더 이상 작동하지 (0) | 2020.02.13 |