2009-12-02 7 views
0

사람들이 물건을 팔고 살 수있는 특정 웹 사이트에 대한 데이터베이스 스키마에 대한 질문이 있습니다.MySQL 데이터베이스; 최상의 스키마

누군가가 데이터베이스에 광고를 추가

, 그는 범주를 선택하고 선택한 범주에 속하는 필터를 채우고, 그래서 누구나 쉽게 카테고리를 탐색하고 같은 필터를 선택하여 자신의 광고를 찾을 수있는 것입니다

[블루투스] 예

[카메라] 3 - 5 메가 픽셀.

기타 등등

데이터베이스에 이러한 필터를 저장하는 가장 좋은 방법은 무엇입니까?

Schema http://img98.imageshack.us/img98/5089/database2.jpg

이 그냥 생각이지만, filter_value 유형 VARCHAR입니다 이후, 3과 5 사이의 필터 "메가 픽셀"에 대한 값으로 다시 광고를 전송하지 않습니다 : 이것은 내가 지금까지있는 것입니다.

+0

그 스키마 다이어그램은 멋진 모양입니다. 어떤 프로그램을 사용하여 생성했는지 묻습니다. – Yada

+0

Yada의 요청을 두 번째로 기다립니다. –

+0

온라인 도구 인 WWW SQL Designer라고합니다 : http://ondras.zarovi.cz/sql/demo/ – Harmen

답변

0

열 id, filter_id 및 value가있는 추가 테이블 filter_value_list를 고려해 보셨습니까? 이 테이블에는 게재 될 광고의 카테고리에 링크 된 각 필터에 대한 드롭 다운 형식으로 사용자에게 제공 될 VARCHAR 응답 목록이 포함됩니다.

"Bluetooth"필터의 경우 가능한 값은 "예"및 "아니오"입니다. '카메라'필터의 경우 가능한 값은 '1 메가 픽셀 미만', '1 또는 2 메가 픽셀', '3 ~ 5 메가 픽셀', '5 ~ 10 메가 픽셀', '10 메가 픽셀 이상'입니다. 미래 기술에 대한 계획은 여기에서).

장점 : 오히려 유형보다는

  1. 사용자 선택, 자신의 대답.

  2. 각 필터는 시스템에서 이해할 수 있습니다.

  3. 모든 광고에서 일관성.

  4. 가능한 값 목록은 요즘 많은 사이트에서 볼 수있는 것처럼 "필터 추가/제거"사이드 바에서 사용할 수도 있습니다.

+0

안녕 래리, 귀하의 의견을 보내 주셔서 감사합니다! 그래서, 당신이 말한 바는 다음과 같습니다 : INT와 VARCHAR와 같은 특정 필터 유형은 없지만 VARCHAR 만 가능합니다. 그리고 당신 말이 맞습니다.이 네 가지 이점이 있습니다. 그러나 사람들은 "3 ~ 5 메가 픽셀"만 선택할 수 있기 때문에 설명에 메가 픽셀 수 (예 : "3.2MP")의 정확한 값을 추가해야합니다. 광고 페이지에 2 ~ 8 또는 6 ~ 8의 메가 픽셀이 포함 된 제품을 선택할 수있는 슬라이더를 추가하는 것만 큼 쉽지는 않습니다. 아이디어에 감사드립니다. , 어쩌면 더 좋은 것이 있습니다.] – Harmen

+0

예, 사용자가 임의의 값을 추가 할 수 없습니다. 그러나 원하는 경우 범위를 사용하는 대신 모든 일반 해상도에 대한 값을 만들 수 있습니다. 중요한 것은 대답이 항상 정의 된 범주에 속하는지 아닌지에 대한 중요성입니다. –

0

나는 테이블로 할 것 :

  • 필터는 광고와 필터 사이에
  • 협회 값 (카테고리 필터의 하나에 불과)

    • 광고
    • 필터 이름은

    원하는 방식으로 저장하지만 이러한 필터를 기반으로 효율적인 쿼리를 수행하려면 Solr을 설정하고 패싯 검색을 사용하십시오.

  • +0

    이것은별로 도움이되지 않습니다. 그것은 단지 더 많은 질문을 요구합니다. –

    +0

    당신이 맞을 것 같네요. 이것은 답이 아닙니다. 그것은 나중에 좋은 조언 일뿐입니다. 나는 이것을 실제 대답을 포함하도록 편집 할 것입니다. –

    0

    디자인이 나에게 꽤 잘 돌아가며, 왜 광고와 카테고리 사이에 추가 ID 필드가 조인 테이블에 포함되었는지 궁금합니다. 나는 당신이 그들없이 할 수 있다고 생각합니다. 나중에 광고 등 기본 표를 변경할 수 있으므로 전체적으로 디자인이 매우 좋습니다.

    다른 점 filter_value 란 무엇입니까? 왜 필터 테이블에 들어갈 수 없습니까?

    +0

    단일 열 기본 키는 프런트 엔드 프로그래밍을 훨씬 쉽게 만듭니다. filter_value는 광고중인 개별 항목을 설명하는 광고를 게재하는 사람이 지정한 값입니다. 사이트에 올려 놓은 카메라에 "블루투스"가 "예"로 표시되지만 사용자의 카메라에 "아니오"가있을 수 있습니다. –

    관련 문제