그래서 약간 복잡한 데이터 모델을 가지고 있으며이를 모델링하는 방법을 찾으려고합니다.DB 스키마 및 레일스 연결
나는 Client
입니다. 그 Client
belongs_to a Firm
.
- Firm Size (0.2, 0.4, 0.6, etc.)
- Firm Type (Big, Small, Medium)
- Priority Level (1, 2, 3, 4, 5 - from low to high)
User
has_many Clients
:
Firm
일예 :
는 사용자가 각 기업의 특성을 편집 할 수 필요가 Firm Size
(예 : 0.95)에 새 크기를 추가하십시오.
그래서 나는 Firm
모델을 가질 생각이었습니다. 그런 다음 각 속성에 대한 모델을 개별적으로 갖습니다. 그래서 사용자가 회사 크기 등에 새로운 레코드를 추가 할 수 있습니다.
나는 다소 혼란 스러우며, 각각에 대한 항목을 만들지 않을 것입니다. Firm
foreign_ids와 모든? 어떻게 데이터를 조작 할 수 있습니까?
예. 한 기업의 경우, 기록은 다음과 같습니다 나는 회사의 크기를 찾으려 할 때
:name => "Firm A", :firm_size_id => 1, :firm_type_id => 2, :priority_level_id => 1
그런 다음, 나는이 같은 쿼리를 실행해야합니다 : FirmSize를 들어
Firm.find(1).firm_size.size
을, 'size'속성의 이름은 무엇입니까? 내가 그렇게한다면이 조금 어색하게 보이는
FirmSize.find(1).size
을? :처럼, 그때는 레일 위의 같은 전화를 할 것입니다. 또는 속성 이름을 name
으로 지정 하시겠습니까? FirmSize.find(1).name
-하지만 그게 전부인지는 모르겠다. 이 경우 회사의 규모입니다.
동일은 'FirmType'와 '여기서 PriorityLevel'등을 적용
나는 이러한 특성에 어떤 계산을하고 싶어하면 나는 좀 이상한 체조를 할 필요가 없습니다 그리고 다른 관심사가 같은이며, :
product = Firm.find(1).firmsize.size * Firm.find(2).firmsize.size
약간 어색한 것처럼 보입니다 ... 아니면 정상입니까?
내가 접근하는 방식을 명확히하는 데 도움이 될 것입니다.
감사합니다.
나는 당신이 다음과 같이 동의한다 : 나는 최선의 방법으로 그것을하고있다. 그래서 여기에 내가 더 명확하게 말하면서 물었습니다. 필자가 분리해야하는 이유는 FirmSize, FirmType, FirmPriorityLevel이 고정 값이 아니기 때문입니다. 사용자는 새로운 유형과 우선 순위 수준뿐 아니라 새로운 '크기'를 쉽게 만들 수 있어야합니다. 또한 두 가지 값을 갖는 방법이 있어야합니다. 즉, A FirmSize는 '빅'일 수 있지만 '값'은 0.6이며, 작은 것은 0.2입니다. 그러나 사용자가 프런트 엔드를 선택할 때 '큰'또는 '작은'을 선택하기 만하면됩니다. 다른 속성에도 동일하게 적용됩니다. 생각 하시겠습니까? – marcamillion
설명하는 시나리오는 TYPICAL입니다. 이걸로 너를 괴롭히는거야. 다양한 크기와 유형 및 사용자가 만드는 이러한 모든 소란을 잊어 버려. 그냥 내가 권고 한 방식대로 코딩하십시오. –
당신이 제공 한 맥락을 바탕으로, 나는 내가 말한 것이 옳다고 믿습니다. 아직도 성가 시게하는 것이 있다면, 시나리오를 언급하면 우리가 그 것을 토론 할 수 있습니다. –