레거시 데이터베이스에 연결하고 엔티티 속성 값 모델을 사용하여 연락처의 정보를 저장하는 테이블에서 데이터의 하위 집합을 가져와야합니다. 표는 다음과 같습니다 :RoR을 E-A-V를 사용하는 레거시 테이블과 함께 사용
fieldid
정의를 나열하는
fields
테이블에 대한 외래 키가
subscriberid fieldid data 1 2 Jack 1 3 Sparrow 2 2 Dan 2 3 Smith
는 특정 고객 (예 : 이름, 성, 전화 번호)를 할 수 있습니다 필드. 필자가 원하는 모든 필드 (현재 6 개의 필드가 필요함)와 현재 사용자를 기반으로하는 마스터 연락처 목록에 테이블 자체에 조인해야하기 때문에 관련된 SQL이 다소 모호합니다.
select t0.data as FirstName, t1.data as LastName, t2.data as SmsOnly
from subscribers_data t0 inner join subscribers_data t1
on t0.subscriberid = t1.subscriberid
inner join subscribers_data t2
on t2.subscriberid = t1.subscriberid
inner join list_subscribers ls
on (t0.subscriberid = ls.subscriberid and t1.subscriberid = ls.subscriberid)
inner join lists l
on ls.listid = l.listid
where l.name = 'My Contacts'
and t0.fieldid = 2
and t1.fieldid = 3;
가 어떻게 내 RoR에의 응용 프로그램이 처리에 대한 이동해야합니다
는 SQL은 다음과 같이인가? 나는 이것을 멀리하고 여전히 속성을 꺼내기 위해 정상적인 점 표기법을 사용할 수 있기를 바랍니다. 다행히도 데이터는 당분간은 읽기 전용입니다.