주요 카테 고리 (상위 열)에 0이 포함되어 있고 하위 카테고리에 상위 카테고리의 ID가 포함되어있는 카테고리라는 표가 생성됩니다. 나는 그것이 Referencing이라고 불리는 것을 들었다. 내 질문 : 나는이 테이블을 제대로 strucutred 가지고 있습니까? 또는 순회 트리 또는 유사한 방법을 구현하는 것과 같은 더 좋은 방법이 있습니까?MySQL : 교차 테이블 범주 및 하위 범주에 대한 참조 (기본, 마스터, 이름)?
CREATE TABLE `categories` (
`primary_id` int(11) NOT NULL auto_increment,
`master_id` int(11) NOT NULL default '0',
`name` varchar(50) NOT NULL default '',
PRIMARY KEY (`c_id`)
)
INSERT INTO `categories` (`primary_id`, `master_id`, `name`) VALUES
(1, '0', 'Games'),
(2, '0', 'Technology'),
(3, '0', 'Science'),
(4, '0', 'Pop Culture'),
(5, '0', 'Jobs/Services'),
(6, '0', 'Blogs'),
(7, '1', 'Computer'),
(8, '1', 'Game Console'),
(9, '2', 'Cellphone'),
(10, '2', 'Audio/Video/Photos'),
(11, '2', 'Laptop'),
(12, '2', 'Others >'),
(13, '3', 'Human Body'),
(14, '3', 'Ocean Life'),
(15, '3', 'Plant Life'),
(16, '3', 'Animal Life'),
(17, '4', 'Artist'),
(18, '4', 'Upcoming'),
(19, '5', 'Jobs'),
(20, '5', 'Tutoring'),
(21, '5', 'Seminars'),
(22, '5', 'Haircuts'),
(23, '9', 'Iphone'),
(24, '9', 'Android'),
(25, '9', 'Windows Mobile'),
(26, '11', 'Toshiba'),
(27, '11', 'HP'),
(28, '11', 'Apple'),
감사합니다. 나는 너의 충고를 따를 것이다. – CodingWonders90
어떻게하면 쿼리를 실행할 때 "# 1064 - SQL 구문에 오류가 있습니다 : 근처의 올바른 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인하십시오 'RESTRICT ON UPDATE RESTRICT) ENGINE = InnoDB DEFAULT CHARSET = latin1 'at line 7 " – CodingWonders90
지금 사용해보십시오. 마스터 테이블의 실제 컬럼 이름과 일치하도록 조회를 편집하십시오. – Jeshurun