미안 제목을 더 잘 설명 할 수 없습니다. 나는 여전히 내가 처리하고있는 것의 이름을 모른다.필드, EAV 등의 MySQL 다중 값
부동산 사이트에 대한 검색 시스템을 개발 중이며 검색 페이지의 필터로 사용되는 일부 필드가 여러 값일 수 있다는 사실을 잊어 버릴 때까지 제대로 작동했습니다. . 제가 의미하는 바는 제가 세일 및 렌트 분야뿐 아니라 주거용 및 상업용 (다른 분야들도) 분야가 하나뿐이라는 것입니다. 문제는 부동산이 판매되거나 임대되거나 주거용이거나 상업용 일 수 있다는 것입니다. 산업.
내가 할 수 있다고 생각한 것은 그걸 자신의 테이블로 옮기는 것입니다. 문제는 값 이름을 표시하고 양식을 채우며 제약 조건으로 사용되는 각 필드의 가능한 값을 나열하는 또 다른 테이블이 있다는 것입니다.
그래서 이제는 무수히 많은 테이블이 붙어 있습니다. .
속성에 대한 테이블, 값에 대한 테이블 및 이러한 값을 속성에 조인하는 테이블입니다.
필터가없는 일반적인 검색 쿼리 (필터가 많고 조인이 많음) 저는 7 개의 내부 조인입니다.
결과를 제한하고 쿼리의 SELECT 부분에서 값을 반환하기 위해 조인을 사용하는 데 매우 어려움을 겪고 있습니다.
이 문제로 인해 지난 2 일 동안 정신적으로 피로감을 느끼게 된 것에 대해 감사드립니다.
편집 :
나는이 순간에 다음과 같은 테이블 :
속성
properties_images
properties_listings
properties_options
properties_purposes
res_geo_address
res_geo_cities
res_geo_neighb orhoods
res_geo_states
res_property_options
res_property_type_age
res_property_type_listing
res_property_type_property
res_property_type_purpose
res_property_type_purpose_property
속성 테이블 기본 속성 테이블 속성을 설명 colums 소수있다.
res_ (예외 화상 단지 이미지 레코드가 포함되어있다) -
속성 _ 표
은 속성 테이블 및 res_property_ 테이블 (등록 정보에 대한 하나의 값에 대해 하나 using이 IDS)을 해소하는데 사용된다 테이블은 대부분의 ID와 값 이름을 나열합니다. (예외는 res_geo 테이블입니다)현재로서는 쿼리가 작동하지 않습니다. 솔직히 말해서 나는 현재의 설정을 설명하기가 어렵다는 그런 복잡함에 도달했습니다.
배열이있는 필드가있는 테이블을 쿼리하고 쉽게 검색 할 수 있다면 간단합니다.
EDIT 2가
화상 위 조인의 일이다. 어떻게하면 속성을 쿼리 할 수 있습니까? 항상 연결된 모든 목록 이름의 concat을 검색하지만 선택적으로 특정 목록 ID 그룹의 속성을 제한 할 수 있습니까?
Property
가
Entity
주어진에 적용 할 수있는 다양한 속성을 정의
Entity
^
|
EntityPropertyValue
|
|
Property<---- PropertyValue
^ |
| |
---------------------
가, PropertyValue
가 주어진 Property
에 유효한 값을 정의하고, EntityPropertyValue
정의 :이 경우
작성한 표와 특히 가치 조회의 작동 방식을 설명해주십시오. 일반적으로 저장하려는 데이터를 올바르게 모델링하면 무수히 많은 테이블에 문제가 발생하지 않습니다. –
자주 EAV와 관련된 질문을합니다 : http://weblogs.sqlteam.com/davidm/articles/12117.aspx -이 기사를 살펴보고 마지막 문구를 확인하십시오. – zerkms