2011-11-15 4 views

답변

2

저는 건물 분류에 대해 ancestry을 사용했으며 taxis으로 평가했습니다.

"사용자 정의 필드 기능"이 무슨 뜻인지 잘 모르겠습니다. 모델의 동적 속성을 의미합니까?

사용자 선택에 따라 유형 정보를 추가해야 할 수도 있지만 한 가지 옵션은 단순히 해시를 직렬화하는 것입니다.

사용할 수있는 유형이 (문자열, 정수, 날짜 등) 제한되어있을 가능성이 있으므로 그 주변에 얇은 모델을 만드는 것이 좋습니다 (StringVar, IntVar 등). 동적 "열"의 이름과 정상 연결을 사용합니다 (예 : has_many :string_vars).

+0

예, 모델의 동적 속성. 즉, 사용자가 객체에 속성을 추가하고, 유형 (정수, 문자열, 날짜 등)을 지정하고 객체 자체와 함께 저장되도록 허용합니다. 프로그래밍 방식으로 스키마를 수정하려는 것이 아니기 때문에 추가 속성을 추가 열로 저장할 필요가 없습니다. – jefflunt

+0

@normalocity Meh. 해시를 일련 번호로 묶으십시오.하지만 직접 입력해야합니다. –

+0

어 - 그래서 해시를 직렬화하고이를 대신 저장하는 것이 단일 테이블 열에서 결과를 얻는 더 좋은 방법이 될 것이라고 생각합니다. 결과적으로 더 간단한 DB 쿼리를 이해할 수 있습니다. – jefflunt

1

이미 답변이 접수되었으므로이 게시물은 나중에 참조 용으로 만 사용됩니다 ... EAV model을 찾고있는 것처럼 들리 네요. 예를 들어 엔티티 (엔티티 유형이라고 부름), 속성 (예 : 텍스트 필드 속성 또는 속성 유형, 이름), 사용자가 원하는 값을 가진 사용자가 있습니다. 해당 텍스트 필드로 이동하여 사용자에게 첨부합니다. 모든 사용자 (엔티티)는 속성 (이름)을 가질 수 있어야합니다. 그것은 EAV 모델로 달성 될 수 있습니다.

관련 문제