나는 Learning
, Program
및 Course
과 같은 모든 유형의 데이터를 사용하여 master_data
을 보유하고 있습니다. 다른 테이블 mapping
은 부모/자식 관계를 알려줍니다. -> 프로그램 -> 코스매핑 테이블을 사용하여 테이블 행을 여러 부모 행에 매핑하는 방법은 무엇입니까?
이 학습은 여러 프로그램이있을 수 있습니다, 프로그램이 여러 과정이있을 수 있습니다 여기에
는 그룹/heirarichy학습을합니다. 또한 프로그램은 여러 학습의 일부가 될 수 있으며 과정은 여러 프로그램의 일부가 될 수 있습니다.
여분의 열을 유지하여 데이터를 가져 오는 방법은 parent
과 같이 부모를 식별하여 행을 그룹화하는 데 도움이됩니다.
Master_data
id title description type
----------------------------------------------------------------
1 How to Present some info Learning
2 Securing Data more info Learning
3 Preparation plan more info Program
4 Protecting System info Program
5 Presentation mediums some info Program
6 know the importance some info Course
7 Notice the key concepts some info Course
8 Presenting in PPT some info Course
9 Presenting in Video format some info Course
10 Update the System some info Course
11 Chose a Strong password some info Course
매핑
id learning_id program_id course_id
---------------- ----------- --------------
1 1 3 6
2 1 5 6
3 1 3 7
4 1 5 8
5 1 5 9
6 2 4 6
7 2 4 10
8 2 4 11
결과
여기id title description type parent
-------------------------------------------------------------------------
1 How to Present some info Learning 1 (itself)
3 Preparation plan more info Program 1
5 Presentation mediums some info Program 1
6 know the importance some info Course 3
7 Notice the key concepts some info Course 3
8 Presenting in PPT some info Course 5
9 Presenting in Video format some info Course 5
프로그램 3,5-가있는 PA RT 6,7는 1 과목을 배우는 것은 3을 프로그램 속하고 8,9는 MySQL의에서 위의 5
쿼리를 프로그램 속
CREATE TABLE `master_data` (
`id` INT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(255) NOT NULL,
`description` TEXT NOT NULL,
`type` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`));
INSERT INTO `master_data` (`id`, `title`, `description`, `type`) VALUES
('1', 'How to Present', 'some info', 'Learning'),
('2', 'Securing Data', 'few more info', 'Learning'),
('3', 'Preparation plan', 'informatoin abt this', 'Program'),
('4', 'Protecting System', 'security info', 'Program'),
('5', 'Presentation mediums', 'some info', 'Program'),
('6', 'You should know the importance', 'some info', 'Course'),
('7', 'Notice the key concepts', 'some info', 'Course'),
('8', 'Presenting in PPT', 'some info', 'Course'),
('9', 'Presenting in Vedio format', 'some info', 'Course'),
('10', 'Update the System', 'some info', 'Course'),
('11', 'Chose a Strong password', 'some info', 'Course');
CREATE TABLE `mapping` (
`id` INT NOT NULL AUTO_INCREMENT,
`learning_id` INT NOT NULL,
`program_id` INT NOT NULL,
`course_id` INT NOT NULL,
PRIMARY KEY (`id`));
INSERT INTO `mapping` (`id`, `learning_id`, `program_id`, `course_id`) VALUES
('1', '1', '3', '6'),
('2', '1', '5', '6'),
('3', '1', '3', '7'),
('4', '1', '5', '8'),
('5', '1', '5', '9'),
('6', '2', '4', '6'),
('7', '2', '4', '10'),
('8', '2', '4', '11');
샘플 결과를 질문에 추가하십시오. –
학습, 프로그램 및 코스를 세 개의 서로 다른 테이블에 넣고 둘 사이에 외래 키 제약 조건을 설정해야합니다. –
샘플 데이터의 예상 출력을 추가 할 수도 있습니다. –