저는 Rails 2.x에서 Worker, Manager 및 Title 모델을 보유하고 있습니다. worker_id, manager_id 및 title_id 만있는 JOIN 테이블도 있습니다 (이에 대한 명시 적 모델 없음). 이 때문에 테이블 (및 그것을위한 모델을 가지고 있지)에 가입, 나는 다음과 같은 가지고 있다고 가정 : 현실에서, 관계,조인 테이블을 사용하는 경우 관계가 HABTM 여야합니까?
Worker
has_and_belongs_to_many :managers
has_and_belongs_to_many :titles
그러나 : 작업자 모델에서
, 내가 가진 Worker는 Manager가 1 명이지만 많은 타이틀을 보유 할 수 있습니다. 또한 많은 근로자들이 동일한 관리자를 가지고 있습니다.
Worker | Title | Manager
Tom | A | M1
Tom | B | M1
Bob | A | M2
Pam | C | M1
는 "올바른"위의 작업자 모델을인가 :
일부 샘플 데이터의 관계를 설명하기 위해? 새로운 노동자를 작성 (모든 관계), 내가 할 : 나는이 작업을 수행 할 때, 나는 내 데이터베이스에서 다음을 얻을
worker = Worker.new("A")
title = "B"
manager = "C"
worker.titles << title
worker.managers << manager
worker.save
: 내가 좋아하는 것
Worker | Title | Manager
A | B | null
A | null | C
이 얻을 :
Worker | Title | Manager
A | B | C
당신은 작업자 만이 할 수있는 말 :
당신은 노동자와 제목
모델 사이의 관계를 유지하기위한 "는 workers_titles"같은 테이블에 가입이 필요합니다 관리자는 1 명이나 여러 명이 있습니다. 그렇다면 왜 서로 다른 카디널리티가있는이 두 유형의 관계를 같은 테이블에 넣으려고합니까? –