1
EAV 데이터를 검색하는 가장 좋은 방법은 무엇입니까? 이 테이블에 저장된 12 개의 필드가 주어지면, "Jones"의 성 및 "Springfield"의 City 및 "1"의 상태와 같이 이들의 조합을 검색 할 수 있어야합니다. 모든 입력란을 채울 수있는 검색 양식이 있습니다.엔티티 속성 값 데이터 검색
은 분명히 최종 버전은 좀 더 역동적 수 있지만 여기에 지금까지있어 무엇 :
SELECT DISTINCT Utility.ClientSearch.ClientId AS ClientId,
cs1.FieldValue AS FirstName,
cs2.FieldValue AS City
FROM Utility.ClientSearch
LEFT OUTER JOIN Utility.ClientSearch AS cs1
ON cs1.ClientId = Utility.ClientSearch.ClientId
AND cs1.FieldName = 'LastName'
LEFT OUTER JOIN Utility.ClientSearch AS cs2
ON cs2.ClientId = Utility.ClientSearch.ClientId
AND cs2.FieldName = 'City'
WHERE (cs1.FieldValue = 'Jones')
AND (cs2.FieldValue = 'Springfield')
그것은 거의 만 기록에 대해 빠른 것 같다,하지만 난이 있는지 알고 싶습니다 가장 효율적인 방법, 또는 더 나은 것이 있다면.
EAV는 좋은 생각이 아니지만 제 신청서가 아닙니다. 난 다른 누군가의 응용 프로그램 주위에 쿼리 래퍼를 작성하고 있습니다. 나는 응용 프로그램이나 데이터 구조를 제어 할 권한이 없다.