2012-12-17 2 views
0

나는 자동차 정보를 저장하기위한 데이터베이스를 만들려고합니다.PHP mysql 제어 게시 양식 필드

자동차는 신규, 중고 또는 임대료로 분류 할 수 있습니다. 신차에는 중고차 및 중고급 카테고리에 대해 필요하지 않은 다양한 기능이 있으므로 각 유형의 자동차 카테고리에는 속성이 다릅니다. 나중에 세 가지 범주에 대한 Application Admin 측면 양식 관리자를 사용하여 특성을 추가하거나 삭제할 수 있습니다.

현재이 3 가지 범주에서 요구하는 모든 특성을 가진 1 개의 제품 표에 이러한 내용을 저장하고 있습니다.

PRODUCT(id,title,description,model,kilometer,enginsize,conditions,.....,.,...) 

각 범주의 양식이 관리 컨트롤에서 관리되도록 제안 되었기 때문에 나는 새로운 확장 가능한 데이터베이스를 찾고 있습니다.

current development: 

all common attributes in Products 

PRODUCT(pid,title,description,...) 

CATEGORY(cid,cname) new,used,rent 

form_field(formfield_id,name,type) to store all attributes that are not common 

form_field_category(formfield_id,cid) to store category associated attributes 

form_post_data(post_id,pid,formfield_id,value) to store submitted data 

제안 사항.

+1

정확히 무엇입니까? – jcjr

+0

레코드에서 NULL 값을 피할 수 있고 카테고리 (새, 중고, 렌트카)에 대한 제거 특성을 추가 할 수있는 컨트롤을 제공하는 PRODUCT 테이블을 구성/정리할 수 있습니다 (현재 모든 일반 및 일반 속성을 저장 함). –

답변

0

Entity-Attribute-Value model이 필요합니다.

form_post_data의 값이 대부분 텍스트 일 ​​경우 간단히 varchar 필드로 지정하십시오. 그러나 숫자 값, 선택 사항 및 기타 유형 (필터링하려는 항목)을 저장하는 경우이 기사 An alternative way of EAV modelling을 살펴보십시오.

여러 값을 가질 수있는 속성이있는 경우이 후속 문서 EAV multi-value fields을 살펴보십시오.

+0

예, 당신 말이 맞아요, 나는 당신과 동의했습니다. 마지막 날 나는 다중 값 속성에 대한 기사를 찾을 수 없었습니다. 오늘 첫 기사의 모든 의견을 읽고 다중 값 속성 처리 링크를 찾습니다. [기사] (http://www.jasny.net/articles/an-alternative-way-of-eav-modeling/comment-page-1/#comment-353854)는이 주제에 대한 훌륭한 논쟁이며 댓글 작성자의 기여는 언제 이러한 접근 방식을 사용할 것인지 결정할 수있게합니다. –

1

당신이 이해하는 2 가지 유형의 속성 (공통 및 카테고리 별)이 있습니다.

그래서 같은 일을 :
PRODUCT(pid,title,description,...) 

CATEGORY(cid,cname) new,used,rent 

additional_info_category(aid, cid, name) 

adition_info_data (adataid, aid, pid, data) 

이 충분해야을, 당신은 모든 제품 정보 플러스 범주에 관련된 추가 정보의 필드를 loead해야합니다.

카테고리 별 카테고리 인 경우 새 필드를 추가 할 때 문제가 없어야하지만 제 질문은 일반적인 필드를 추가하지 않아도됩니까?

+0

당신은 이것이 게을리 할 수 ​​있다고 생각합니까? form_field (formfield_id, name, type) 일반적이지 않은 모든 속성을 저장합니다. AS 모든 속성을 저장하는 데 사용했습니다.이 속성은 모든 카테고리와 연관 될 수 있습니다. –

+0

필자는 테이블'additional_info_category (aid, cid, name)'만 가지고있는 것이 더 쉽다고 생각합니다. 카테고리에 링크되지 않은 속성을 저장하려면 cid를 '0'으로 설정하면됩니다. – Naryl

+0

질문에 관해서는, MAKE, MODEL 같은 일반적인 필드가있을 수 있다고 생각합니다. COMMON 오해 (잘못됨), 제목, 설명, 상태, 카테고리와 같은 일반 사항이 좋지만 다른 모든 속성은 추가 정보로 표시됩니다. –