2010-01-20 4 views
2

먼저 정규화를 이해하는 데 도움을 주신 모든 분들께 감사 드리며 데이터베이스 구축 방법에 대해 감사드립니다.MySQL 연결 테이블; 몇 가지 최종 문제

지금, 나는 왼쪽 최종적인 약간의 문제가 ...

어떻게 테이블의 연결이 실제로 작동합니까? 내가 위에서 그것을 설정을 가지고

CATEGORY 
(1, cars) 
(2, MC) 

CATEGORY_OPTIONS 
(1, 1, year) 
(2, 1, fuel) 
(3, 2, type) 

CATEGORY_OPTIONS_VALUES 
(1, 1, 2010) 
(2, 1, Petrol) 
(3, 2, Cross) 

이 맞 :

CATEGORY TABLE: 
cat_id (PK) -> 1 
cat_name -> cars 

CATEGORY_OPTIONS TABLE: 
cat_opt_id (FK) -> 1 
cat_id (FK) -> 1 
option_name -> year 

CATEGORY_OPTIONS_VALUES TABLE: 
cat_opt_val_id (PK) -> 1 
cat_opt_id (FK) -> 1 
value -> 1999 

는 기본적으로 값은 다음과 같아야합니다

는 세 개의 테이블을 말해봐?

어떻게 검색하나요, 논리가 어떻게 구성되어 있습니까? > 년 = 2010 년 연료 = 휘발유 방법 쿼리가 다음입니다 -

은 내가

당신이 자동차를 검색 할 말 (등 선택) PHP에서 쿼리의 예를 필요가 있다고 생각? 그리고 CAR -> fuel = PETROL, year = anything을 검색 하시겠습니까?

LASTLY, 이러한 필드 중 하나에서 AutoIncrement를 사용해야합니까? AI는 언제 사용됩니까?

감사

PS

자세한 정보를 원하시면,이 Q를 체크 아웃은 : Can this MySQL db be improved or is it good as it is?

답변

0

당신은 SQL 조인합니다. 테이블 연결은 당신이 달성하고자하는 것과는 전혀 관련이없는 전혀 관련없는 기술입니다 (자세한 내용은 MERGE 엔진의 MySQL 설명서를 참조하십시오). 일반적으로 : - 모든 다른 단계에서 적용 ON의 조건, HAVING 절 특히 중요성 수행 조인 방법을 이해하기 위해

SELECT f.name, b.value 
FROM foo f 
LEFT JOIN bar b ON b.foo_id = f.id 
WHERE f.age > 10 
HAVING b.value IS NOT NULL 

, 당신은 데이터베이스 엔진이 쿼리를 처리하는 방법을 이해해야합니다.