2010-05-26 3 views
0

그것 뿐이다 나는 그런 도구를 developp 처음으로 모두 알고 내가 말해하려는 결코하지 않았다 때문에PHP 가격 comparaison 도구를 코딩

(가격 및/또는 옵션에 따라 제품을 비교 할 수있는 가능성) 무엇을 데이터베이스에

은 우리가 가진 것 :

offer/price/option 1/option 2/option 3/IDseller/IDoffer 
best buy/15$/full FTP/web hosting/php.ini/10/1 
.../..../.... 

그리고 클라이언트에 의해 요청 :

당신은 내가 볼 방법에 대해 어떻게 생각하십니까
"SELECT * FROM offers WHERE price <= 20 AND option1 = fullFTP"; 

잘 될지 모르겠다.

플러스 나는 동일한 판매자 (DB가 아니라 프런트 엔드에만 해당)에 대한 다중 디스플레이를 방지하는 방법에 대해 궁금합니다. 동일한 판매자에 대해 FullFTP 옵션을 사용하여 < = 20 인 가격으로 여러 건의 오퍼가 있다고 가정 해 봅시다. 비교기에 5 번 표시하지 않으려합니다.

당신이 어떤 조언이있는 경우

)

주셔서 감사합니다 WHERE 절 후

답변

1

데이터베이스 정규화 및 세 번째 정규형에 대해 읽으 려합니다.

또한 행을 타임 스탬프 처리하고 이러한 범위를 쿼리에 포함해야 할 수도 있습니다.

옵션을 별도의 테이블로 옮기고 연관 테이블의 거래로 옵션을 집계해야합니다.

옵션 (ID, 설명)

판매자 (ID, 이름, 설명, ...)

이벤트 (ID, seller_id, 제목, 설명, 가격, ENTRY_DATE, 시작일, 종료일)

offer_options (OFFER_ID, option_id)

많은 가까이 당신이해야하고 더 쉽게 일을 할 것입니다 곳으로 당신을 얻을 수

.

다음 ... SQL은

0

여러 판매자가 게재되지 않도록하려면 묶기 기능을 사용합니다.

"SELECT * FROM offers WHERE price <= 20 AND option1 = fullFTP"; 

각 공급 업체 내에서 필터링해야합니다. 내가 말할 수있는 한, 초기 설정은 소리입니다.

이 질문은 매우 일반적으로 보입니다.

0

에 가입 왜 프런트 엔드 기능을 구현하는 아파치 루씬를 사용하지? PHP에서 Lucene 기능을 제공하는 Zend 라이브러리입니다.

데이터를 데이터베이스에 보관하고 있지만 Lucene 색인으로 내 보내야합니다.

좋아, 이것은 가격 비교이지만 옵션에는 의미가 있습니다. 하나의 필드에 모든 옵션을 입력하십시오 (예 : 쉼표로 구분). 텍스트 검색을 사용하십시오.

1

해당 판매자를 여러 번 표시하지 않으려면 SQL에 "GROUP BY IDeller"를 사용하십시오.