나는 제품을 표시하는 앱을 만들고 있습니다. 각 제품은 이름, 브랜드 등의 공통 정보가 포함 된 모델 (제품)입니다.보고있는 제품의 종류를 구분하기 위해 product_type (예 : 전화, TV, 소파 등)은 기본적으로 tinyint입니다. 필드 (예 : 1 = 전화, 2 = TV).레일스에 여러 옵션 필드를 저장하는 방법은 무엇입니까?
지금, 는 제품 _에 따라 각 제품은 다른 옵션을 가질 수는 제품이 추가 정보를 원하시면 관련된해야 전화의 경우 (무게처럼, 그것은 LTE가 않습니다, 그것은 등 전면 카메라가 않습니다) TV에는 화면 크기와 같은 정보가 있어야합니다.
내 질문에 대한 답변 : 제품에 따라이 추가 데이터를 제품에 추가하는 가장 좋은 방법은 무엇입니까? 제품에 따라이 추가 데이터를 추가하는 방법은 무엇입니까?
내가 별도의 모델을 추가 필드를 저장하는 것 필드가 PRODUCT_ID ProductOptions, option_type, option_value (VARCHAR)을 가지고 생각했다,하지만이 성능 & 검색 선택 사항입니다 있는지 확실하지 않습니다. 이 경우 검색은 지정된 기준 (예 : po = ProductOption.where(:option_type => "LTE", :option_value => "yes")
)과 일치하는 모든 ProductOptions을 찾은 다음 Product.findAllIn(po)
을 수행하여 실제 제품을 찾습니다.
아니면 Postgres와 함께 가서 HStore를 사용해야합니까? 검색 할 때 HStore가 효율적입니까?
아이디어가 있으십니까?
레일 초보자는 모든 코드는 이미 ProductType에서 찾고 있다면,이 Single-Table Inheritance을 실제로 다른 제품 유형을 정의 할 수 있습니다 의사 코드