@Jerska와 마찬가지로 sort_id를 사용하지 마십시오. 하위 메뉴를 정렬 할 수 없으므로 &은 프로그램 논리를 혼동/혼동시킬 수 있습니다. 이런 식으로 테이블을 만들 수 있습니다.
CREATE TABLE menu(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
parent_id INT,
FOREIGN KEY(parent_id) REFERENCES menu(id),
sort_id INT,
title VARCHAR(100)
) ENGINE=InnoDB;
parent_id가 null로 설정된 경우 루트 메뉴입니다.
이
당신을위한 예제 메뉴입니다 :
홈 & 정원
- 식당
- - 욕실
- 침실
- 정원 & 음악원
Electricals는
룸
을 생활 - 사운드 & Vi 시온
- & 전화
컴퓨팅 - 가전
- 소형 가전
이
그것은 다음과 같이 저장됩니다 :
당신이 실제로 그 순서로 삽입 한 경우
INSERT INTO menu
(parent_id, sort_id, title)
VALUES
(null, 1, "Home & Garden"),
(null, 2, "Electricals"),
(1, 1, "Living Room"),
(1, 2, "Dining Room"),
(1, 3, "Bathroom"),
(1, 4, "Bedroom"),
(1, 5, "Garden & Conservatory"),
(2, 1, "Sound & Vision"),
(2, 4, "Small Appliances"),
(2, 3, "Home Appliances"),
(2, 2, "Computing & Phones");
, 홈 & "의 ID Garden "은 1이고"Electricals "의 ID는 2 ("sort_id "와 혼동하지 말 것)이고"Living Room "의 ID는 3,"Dining Room "의 ID는 4가됩니다. 우리가 ID 필드에서 자동으로 증가하기 때문입니다. 당신은 하위 범주를 갖고 싶어
그래서 먼저, ID를 찾을 것입니다,이 경우는 8
을 것 한 다음 8
로 부모 ID로 새 레코드를 추가, 사운드 & 비전에 말한다.
예 하위 하위 범주 : 단지 부모 메뉴의 ID를 넣어 sort_id에서
INSERT INTO menu
(parent_id, sort_id, title)
VALUES
(8, 1, "Televisions"),
(8, 2, "Audio");
하고, 0/-1을 넣어 : 당신은이 레코드를 삽입 할
뿌리 메뉴. (귀하의 SQL 관리자가 ID를 시작하는 방법에 따라 – Jerska
및 부모 메뉴가없는 주 메뉴 범주는 무엇입니까? – tnanoba
이미 편집 – Jerska