https://dbdiagram.io/
여기서 만들었고
1. 일대일 (1:1) - 회원과 프로필
한 명의 회원이 가입하면, 그 회원만을 위한 상세 정보 페이지(프로필)가 딱 하나 생성되는 구조
회원 입장: 내 상세 프로필은 이거 하나
프로필 입장: 나를 소유한 회원은 이 사람 하나
특징: 서로가 서로를 독점하는 관계
2. 일대다 (1:N) - 회원과 게시글
한 명의 회원은 여러 개의 게시물을 올릴 수 있지만, 그 게시물 하나하나를 뜯어보면 작성자는 반드시 한 명뿐인 구조
회원 입장: 내가 쓴 글이 10개 (1명의 회원이 N개의 글을 가짐)
게시글 입장: 내 작성자는 '홍길동' 한 명 (여러 글이 1명의 회원을 가리킴)
특징: 현실 세계에서 가장 많이 쓰이는 데이터 구조입니다.
3. 다대다 (N:M) - 게시글과 해시태그
하나의 게시글에는 여러 개의 태그(`#맛집`, `#데이트`)가 붙을 수 있고,
반대로 `#맛집`이라는 태그 하나를 클릭하면 그 태그가 달린 수많은 게시글이 쏟아져 나오는 구조입
게시글 입장: 내 글에는 태그가 5개
해시태그 입장: 나(태그)를 사용한 게시글이 전국에 1,000개
특징: 서로가 서로를 여러 개씩 가질 수 있는 자유로운 관계입니다
---
요점 정리
1:1 - 회원권 하나당 락커룸 하나 (개인 사물함)
1:N - 부모 한 명과 여러 명의 자녀 (가족 관계)
N:M - 여러 명의 학생과 여러 개의 수강 과목 (수강 신청)

동그라미가 있으면 B를 가질수도 있고 가지지 않을수도 있다는 말=있어도 없어도 상관이 없다
그런데 동그라미가 없으면 B를 필수로 가져야된다
일단 기존에 연습하던 스프링 프로젝트에서 필요할 것 같은 내용을 추가
구조는 추후 계속 수정될 수 있음
마지막으로 수정된 ERD
(dbdiagram 에서 mySQL 로 export 한다고 하면 자동으로 만들어준다 이렇게 편할수가)
쿼리 실행까지 오류 없었음
DROP DATABASE IF EXISTS `docentNote`;
CREATE DATABASE `docentNote`;
USE `docentNote`;
CREATE TABLE `member` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`loginId` VARCHAR(20) NOT NULL,
`loginPw` VARCHAR(100) NOT NULL,
`authLevel` TINYINT NOT NULL DEFAULT 3,
`name` VARCHAR(20) NOT NULL,
`nickName` VARCHAR(20) NOT NULL,
`birthDay` DATE NOT NULL,
`cellPhone` VARCHAR(254) NOT NULL,
`email` VARCHAR(100) NOT NULL,
`delStatus` TINYINT(1) NOT NULL DEFAULT 0,
`delDate` DATETIME,
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `board` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`code` VARCHAR(20) NOT NULL,
`name` VARCHAR(100) NOT NULL,
`delStatus` TINYINT NOT NULL DEFAULT 0,
`delDate` DATE,
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `article` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`title` VARCHAR(100) NOT NULL,
`body` LONGTEXT NOT NULL,
`memberId` INT NOT NULL,
`boardId` INT NOT NULL,
`hits` INT NOT NULL DEFAULT 0,
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `comment` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`memberId` INT NOT NULL,
`relTypeCode` VARCHAR(20) NOT NULL,
`relId` INT NOT NULL,
`body` TEXT NOT NULL,
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `reaction` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`relTypeCode` VARCHAR(20) NOT NULL,
`relId` INT NOT NULL,
`memberId` INT NOT NULL,
`point` TINYINT NOT NULL,
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `painting` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`paintingNameEn` VARCHAR(100) NOT NULL,
`paintingNameKr` VARCHAR(100) NOT NULL,
`painterId` INT NOT NULL,
`movementId` INT NOT NULL,
`createYear` INT NOT NULL,
`imgPath` VARCHAR(500) NOT NULL,
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `painter` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`painterNameEn` VARCHAR(100) NOT NULL,
`painterNameKr` VARCHAR(100) NOT NULL,
`movementId` INT NOT NULL,
`nationality` VARCHAR(100) NOT NULL,
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `Movement` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`moveNameEn` VARCHAR(100) NOT NULL,
`moveNameKr` VARCHAR(100) NOT NULL
);
CREATE TABLE `archiveMove` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`movementId` INT NOT NULL,
`description` TEXT NOT NULL,
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `archivePainter` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`painterId` INT NOT NULL,
`painterNameEn` VARCHAR(100) NOT NULL,
`painterNameKr` VARCHAR(100) NOT NULL,
`movementId` INT NOT NULL,
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `painting_like` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`memberId` INT NOT NULL,
`paintingId` INT NOT NULL,
`regDate` DATETIME NOT NULL
);
ALTER TABLE `article` ADD FOREIGN KEY (`memberId`) REFERENCES `member` (`id`);
ALTER TABLE `article` ADD FOREIGN KEY (`boardId`) REFERENCES `board` (`id`);
ALTER TABLE `comment` ADD FOREIGN KEY (`memberId`) REFERENCES `member` (`id`);
ALTER TABLE `reaction` ADD FOREIGN KEY (`memberId`) REFERENCES `member` (`id`);
ALTER TABLE `comment` ADD FOREIGN KEY (`relId`) REFERENCES `article` (`id`);
ALTER TABLE `reaction` ADD FOREIGN KEY (`relId`) REFERENCES `article` (`id`);
ALTER TABLE `painting` ADD FOREIGN KEY (`painterId`) REFERENCES `painter` (`id`);
ALTER TABLE `painting` ADD FOREIGN KEY (`movementId`) REFERENCES `Movement` (`id`);
ALTER TABLE `painter` ADD FOREIGN KEY (`movementId`) REFERENCES `Movement` (`id`);
ALTER TABLE `archiveMove` ADD FOREIGN KEY (`movementId`) REFERENCES `Movement` (`id`);
ALTER TABLE `archivePainter` ADD FOREIGN KEY (`painterId`) REFERENCES `painter` (`id`);
ALTER TABLE `archivePainter` ADD FOREIGN KEY (`movementId`) REFERENCES `Movement` (`id`);
ALTER TABLE `painting_like` ADD FOREIGN KEY (`memberId`) REFERENCES `member` (`id`);
ALTER TABLE `painting_like` ADD FOREIGN KEY (`paintingId`) REFERENCES `painting` (`id`);
DROP DATABASE IF EXISTS `docentNote`;
CREATE DATABASE `docentNote`;
USE `docentNote`;
CREATE TABLE `member` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`loginId` varchar(20) NOT NULL,
`loginPw` varchar(100) NOT NULL,
`authLevel` tinyint NOT NULL DEFAULT 3,
`name` varchar(20) NOT NULL,
`nickName` varchar(20) NOT NULL,
`birthDay` date NOT NULL,
`cellPhone` varchar(254) NOT NULL,
`email` varchar(100) NOT NULL,
`delStatus` tinyint(1) NOT NULL DEFAULT 0,
`delDate` datetime,
`regDate` datetime NOT NULL,
`updateDate` datetime NOT NULL
);
CREATE TABLE `board` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`code` varchar(20) NOT NULL,
`name` varchar(100) NOT NULL,
`delStatus` tinyint NOT NULL DEFAULT 0,
`delDate` date,
`regDate` datetime NOT NULL,
`updateDate` datetime NOT NULL
);
CREATE TABLE `article` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`body` longtext NOT NULL,
`memberId` int NOT NULL,
`boardId` int NOT NULL,
`hits` int NOT NULL DEFAULT 0,
`regDate` datetime NOT NULL,
`updateDate` datetime NOT NULL
);
CREATE TABLE `comment` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`memberId` int NOT NULL,
`relTypeCode` varchar(20) NOT NULL,
`relId` int NOT NULL,
`body` text NOT NULL,
`regDate` datetime NOT NULL,
`updateDate` datetime NOT NULL
);
CREATE TABLE `reaction` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`relTypeCode` varchar(20) NOT NULL,
`relId` int NOT NULL,
`memberId` int NOT NULL,
`point` tinyint NOT NULL,
`regDate` datetime NOT NULL,
`updateDate` datetime NOT NULL
);
CREATE TABLE `painting` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`paintingNameEn` varchar(100) NOT NULL,
`paintingNameKr` varchar(100) NOT NULL,
`painterId` int NOT NULL,
`movementId` int NOT NULL,
`createYear` int NOT NULL,
`imgPath` varchar(500) NOT NULL,
`regDate` datetime NOT NULL,
`updateDate` datetime NOT NULL
);
CREATE TABLE `painter` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`painterNameEn` varchar(100) NOT NULL,
`painterNameKr` varchar(100) NOT NULL,
`movementId` int NOT NULL,
`nationality` varchar(100) NOT NULL,
`regDate` datetime NOT NULL,
`updateDate` datetime NOT NULL
);
CREATE TABLE `Movement` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`moveNameEn` varchar(100) NOT NULL,
`moveNameKr` varchar(100) NOT NULL
);
CREATE TABLE `archiveMove` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`movementId` int NOT NULL,
`description` text NOT NULL,
`regDate` datetime NOT NULL,
`updateDate` datetime NOT NULL
);
CREATE TABLE `archivePainter` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`painterId` int NOT NULL,
`painterNameEn` varchar(100) NOT NULL,
`painterNameKr` varchar(100) NOT NULL,
`movementId` int NOT NULL,
`regDate` datetime NOT NULL,
`updateDate` datetime NOT NULL
);
CREATE TABLE `painting_like` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`memberId` int NOT NULL,
`paintingId` int NOT NULL,
`regDate` datetime NOT NULL
);
CREATE TABLE `archiveColor` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`colorName` varchar(50) UNIQUE NOT NULL COMMENT '예: Red, Deep Blue',
`min_r` int NOT NULL,
`max_r` int NOT NULL,
`min_g` int NOT NULL,
`max_g` int NOT NULL,
`min_b` int NOT NULL,
`max_b` int NOT NULL,
`regDate` datetime NOT NULL
);
CREATE TABLE `painting_color_map` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`paintingId` int NOT NULL,
`archiveColorId` int COMMENT '매칭된 사전 색상 ID',
`raw_r` int NOT NULL COMMENT 'API가 추출한 실제 R값',
`raw_g` int NOT NULL COMMENT 'API가 추출한 실제 G값',
`raw_b` int NOT NULL COMMENT 'API가 추출한 실제 B값',
`score` float COMMENT '색상 비중 (0~1)'
);
ALTER TABLE `article` ADD FOREIGN KEY (`memberId`) REFERENCES `member` (`id`);
ALTER TABLE `article` ADD FOREIGN KEY (`boardId`) REFERENCES `board` (`id`);
ALTER TABLE `comment` ADD FOREIGN KEY (`memberId`) REFERENCES `member` (`id`);
ALTER TABLE `reaction` ADD FOREIGN KEY (`memberId`) REFERENCES `member` (`id`);
ALTER TABLE `comment` ADD FOREIGN KEY (`relId`) REFERENCES `article` (`id`);
ALTER TABLE `reaction` ADD FOREIGN KEY (`relId`) REFERENCES `article` (`id`);
ALTER TABLE `painting` ADD FOREIGN KEY (`painterId`) REFERENCES `painter` (`id`);
ALTER TABLE `painting` ADD FOREIGN KEY (`movementId`) REFERENCES `Movement` (`id`);
ALTER TABLE `painter` ADD FOREIGN KEY (`movementId`) REFERENCES `Movement` (`id`);
ALTER TABLE `archiveMove` ADD FOREIGN KEY (`movementId`) REFERENCES `Movement` (`id`);
ALTER TABLE `archivePainter` ADD FOREIGN KEY (`painterId`) REFERENCES `painter` (`id`);
ALTER TABLE `archivePainter` ADD FOREIGN KEY (`movementId`) REFERENCES `Movement` (`id`);
ALTER TABLE `painting_like` ADD FOREIGN KEY (`memberId`) REFERENCES `member` (`id`);
ALTER TABLE `painting_like` ADD FOREIGN KEY (`paintingId`) REFERENCES `painting` (`id`);
ALTER TABLE `painting_color_map` ADD FOREIGN KEY (`paintingId`) REFERENCES `painting` (`id`);
ALTER TABLE `painting_color_map` ADD FOREIGN KEY (`archiveColorId`) REFERENCES `archiveColor` (`id`);
프로젝트 내부 DB.sql 파일에도 정리중

앞으로는 그냥 계속 여기서 수정
DROP DATABASE IF EXISTS `docentNote`;
CREATE DATABASE `docentNote`;
USE `docentNote`;
CREATE TABLE `member` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`loginId` VARCHAR(20) NOT NULL,
`loginPw` VARCHAR(100) NOT NULL,
`authLevel` TINYINT NOT NULL DEFAULT 3,
`name` VARCHAR(20) NOT NULL,
`nickName` VARCHAR(20) NOT NULL,
`birthDay` DATE NOT NULL,
`cellPhone` VARCHAR(254) NOT NULL,
`email` VARCHAR(100) NOT NULL,
`delStatus` TINYINT(1) NOT NULL DEFAULT 0,
`delDate` DATETIME,
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `board` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`code` VARCHAR(20) NOT NULL,
`name` VARCHAR(100) NOT NULL,
`delStatus` TINYINT NOT NULL DEFAULT 0,
`delDate` DATE,
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `article` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`title` VARCHAR(100) NOT NULL,
`body` LONGTEXT NOT NULL,
`memberId` INT NOT NULL,
`boardId` INT NOT NULL,
`hits` INT NOT NULL DEFAULT 0,
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `comment` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`memberId` INT NOT NULL,
`relTypeCode` VARCHAR(20) NOT NULL,
`relId` INT NOT NULL,
`body` TEXT NOT NULL,
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `reaction` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`relTypeCode` VARCHAR(20) NOT NULL,
`relId` INT NOT NULL,
`memberId` INT NOT NULL,
`point` TINYINT NOT NULL,
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `painting` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`paintingNameEn` VARCHAR(255) NOT NULL,
`paintingNameKr` VARCHAR(100) NOT NULL,
`painterId` INT NOT NULL,
`movementId` INT NOT NULL,
`imgUrl` VARCHAR(500) NOT NULL,
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `painter` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`painterNameEn` VARCHAR(100) NOT NULL,
`painterNameKr` VARCHAR(100) NOT NULL,
`movementId` INT NOT NULL,
`nationality` VARCHAR(100) NOT NULL,
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `Movement` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`moveNameEn` VARCHAR(100) NOT NULL,
`moveNameKr` VARCHAR(100) NOT NULL
);
CREATE TABLE `docent` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`paintingId` INT UNIQUE NOT NULL COMMENT '작품 하나당 도슨트 하나 (1:1)',
`body` LONGTEXT NOT NULL COMMENT 'GPT가 생성한 긴 도슨트 내용',
`regDate` DATETIME NOT NULL,
`updateDate` DATETIME NOT NULL
);
CREATE TABLE `painting_like` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`memberId` INT NOT NULL,
`paintingId` INT NOT NULL,
`regDate` DATETIME NOT NULL
);
CREATE TABLE `archiveColor` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`colorName` VARCHAR(50) UNIQUE NOT NULL,
`min_r` INT NOT NULL,
`max_r` INT NOT NULL,
`min_g` INT NOT NULL,
`max_g` INT NOT NULL,
`min_b` INT NOT NULL,
`max_b` INT NOT NULL,
`regDate` DATETIME NOT NULL
);
CREATE TABLE `painting_color_map` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`paintingId` INT NOT NULL,
`archiveColorId` INT,
`raw_r` INT NOT NULL,
`raw_g` INT NOT NULL,
`raw_b` INT NOT NULL,
`score` FLOAT
);
ALTER TABLE `article` ADD FOREIGN KEY (`memberId`) REFERENCES `member` (`id`);
ALTER TABLE `article` ADD FOREIGN KEY (`boardId`) REFERENCES `board` (`id`);
ALTER TABLE `comment` ADD FOREIGN KEY (`memberId`) REFERENCES `member` (`id`);
ALTER TABLE `reaction` ADD FOREIGN KEY (`memberId`) REFERENCES `member` (`id`);
ALTER TABLE `comment` ADD FOREIGN KEY (`relId`) REFERENCES `article` (`id`);
ALTER TABLE `reaction` ADD FOREIGN KEY (`relId`) REFERENCES `article` (`id`);
ALTER TABLE `painting` ADD FOREIGN KEY (`painterId`) REFERENCES `painter` (`id`);
ALTER TABLE `painting` ADD FOREIGN KEY (`movementId`) REFERENCES `Movement` (`id`);
ALTER TABLE `painter` ADD FOREIGN KEY (`movementId`) REFERENCES `Movement` (`id`);
ALTER TABLE `painting` ADD FOREIGN KEY (`id`) REFERENCES `docent` (`paintingId`);
ALTER TABLE `painting_like` ADD FOREIGN KEY (`memberId`) REFERENCES `member` (`id`);
ALTER TABLE `painting_like` ADD FOREIGN KEY (`paintingId`) REFERENCES `painting` (`id`);
ALTER TABLE `painting_color_map` ADD FOREIGN KEY (`paintingId`) REFERENCES `painting` (`id`);
ALTER TABLE `painting_color_map` ADD FOREIGN KEY (`archiveColorId`) REFERENCES `archiveColor` (`id`);
-- 미술사조 목록
INSERT INTO `Movement` (`moveNameEn`, `moveNameKr`) VALUES
('Art Nouveau', '아르누보'),
('Baroque', '바로크'),
('Illustration', '일러스트'),
('Impressionism', '인상주의'),
('Post Impressionism', '탈인상주의'),
('Realism', '리얼리즘'),
('Renaissance', '르네상스'),
('Rococo', '로코코'),
('Romanticism', '낭만주의');
-- 색상 데이터
-- 1. 외래키 체크 끄기
SET FOREIGN_KEY_CHECKS = 0;
-- 2. 둘 다 비우기
TRUNCATE TABLE painting_color_map;
TRUNCATE TABLE archiveColor;
-- 3. 외래키 체크 다시 켜기
SET FOREIGN_KEY_CHECKS = 1;
-- 4. 새 데이터 삽입
INSERT INTO `archiveColor` (`id`, `colorName`, `min_r`, `max_r`, `min_g`, `max_g`, `min_b`, `max_b`, `regDate`) VALUES
(1, 'Red', 190, 255, 0, 90, 0, 90, NOW()),
(2, 'Orange', 190, 255, 90, 170, 0, 90, NOW()),
(3, 'Yellow', 180, 255, 180, 255, 0, 110, NOW()),
(4, 'Green', 0, 90, 110, 255, 0, 110, NOW()),
-- 하늘색 포함: B가 R,G보다 높으면 모두 Blue로
(5, 'Blue', 50, 220, 80, 230, 150, 255, NOW()),
(6, 'Navy', 0, 70, 0, 90, 80, 175, NOW()),
(7, 'Purple', 100, 210, 0, 90, 120, 240, NOW()),
(8, 'Pink', 200, 255, 100, 190, 130, 220, NOW()),
(9, 'Black', 0, 55, 0, 55, 0, 55, NOW()),
(10, 'White', 170, 255, 160, 255, 140, 255, NOW()),
(11, 'Brown', 55, 200, 30, 160, 0, 110, NOW());
-- 아르누보 화가 데이터
INSERT INTO `painter` (`painterNameEn`, `painterNameKr`, `movementId`, `nationality`, `regDate`, `updateDate`) VALUES
('Jules Cheret', '쥘 셰레', 1, 'France', NOW(), NOW()),
('Gustav Klimt', '구스타프 클림트', 1, 'Austria', NOW(), NOW()),
('Berthon Livemont', '베르통 리브몽', 1, 'Belgium', NOW(), NOW()),
('Henri Meunier', '앙리 뫼니에', 1, 'Belgium', NOW(), NOW()),
('Alphonse Mucha', '알폰스 무하', 1, 'Czech', NOW(), NOW()),
('Kay Nielsen', '케이 닐슨', 1, 'Denmark', NOW(), NOW());
-- 바로크 화가
INSERT INTO `painter` (`painterNameEn`, `painterNameKr`, `movementId`, `nationality`, `regDate`, `updateDate`) VALUES
('Jan Brueghel the Elder', '얀 브뤼헐', 2, 'Belgium', NOW(), NOW()),
('Castello Caldei', '카스텔로 칼데이', 2, 'Italy', NOW(), NOW()),
('Gerard van Honthorst', '게라르드 반 혼토르스트', 2, 'Netherlands', NOW(), NOW()),
('Rembrandt Harmenszoon van Rijn', '렘브란트 하르먼손 판레인', 2, 'Netherlands', NOW(), NOW()),
('Diego Velazquez', '디에고 벨라스케스', 2, 'Spain', NOW(), NOW()),
('Johannes Vermeer', '요하네스 베르메르', 2, 'Netherlands', NOW(), NOW());
-- 일러스트 화가
INSERT INTO `painter` (`painterNameEn`, `painterNameKr`, `movementId`, `nationality`, `regDate`, `updateDate`) VALUES
('J. C. Leyendecker', '조셉 크리스천 레이엔데커', 3, 'USA', NOW(), NOW());
-- 인상주의 화가
INSERT INTO `painter` (`painterNameEn`, `painterNameKr`, `movementId`, `nationality`, `regDate`, `updateDate`) VALUES
('Edgar Degas', '에드가 드가', 4, 'France', NOW(), NOW()),
('Edouard Manet', '에두아르 마네', 4, 'France', NOW(), NOW()),
('Claude Monet', '클로드 모네', 4, 'France', NOW(), NOW()),
('Berthe Morisot', '베르트 모리조', 4, 'France', NOW(), NOW()),
('Camille Pissarro', '카미유 피사로', 4, 'France', NOW(), NOW()),
('Pierre Auguste Renoir', '오귀스트 르누아르', 4, 'France', NOW(), NOW()),
('Joaquin Sorolla', '호아킨 소로야', 4, 'Spain', NOW(), NOW());
-- 탈인상주의 화가
INSERT INTO `painter` (`painterNameEn`, `painterNameKr`, `movementId`, `nationality`, `regDate`, `updateDate`) VALUES
('Paul Cezanne', '폴 세잔', 5, 'France', NOW(), NOW()),
('Vincent van Gogh', '빈센트 반 고흐', 5, 'Netherlands', NOW(), NOW()),
('Gustave Loiseau', '귀스타브 루아조', 5, 'France', NOW(), NOW()),
('Theo van Rysselberghe', '테오 반 뤼셀베르그', 5, 'Belgium', NOW(), NOW()),
('Georges Seurat', '조르주 쇠라', 5, 'France', NOW(), NOW()),
('Henri Le Sidaner', '앙리 르 시다네르', 5, 'France', NOW(), NOW());
-- 리얼리즘 화가
INSERT INTO `painter` (`painterNameEn`, `painterNameKr`, `movementId`, `nationality`, `regDate`, `updateDate`) VALUES
('Gustave Courbet', '귀스타브 쿠르베', 6, 'France', NOW(), NOW()),
('Honore Daumier', '오노레 도미에', 6, 'France', NOW(), NOW()),
('Jean Francois Millet', '장 프랑수아 밀레', 6, 'France', NOW(), NOW()),
('Ilya Repin', '일리아 레핀', 6, 'Russia', NOW(), NOW()),
('Jean Baptiste Robie', '장 바티스트 로비', 6, 'Belgium', NOW(), NOW()),
('Anders Zorn', '안데르스 소른', 6, 'Sweden', NOW(), NOW());
-- 르네상스 화가
INSERT INTO `painter` (`painterNameEn`, `painterNameKr`, `movementId`, `nationality`, `regDate`, `updateDate`) VALUES
('Leonardo da Vinci', '레오나르도 다 빈치', 7, 'Italy', NOW(), NOW()),
('Michelangelo', '미켈란젤로', 7, 'Italy', NOW(), NOW());
-- 로코코 화가
INSERT INTO `painter` (`painterNameEn`, `painterNameKr`, `movementId`, `nationality`, `regDate`, `updateDate`) VALUES
('Francois Boucher', '프랑수아 부셰', 8, 'France', NOW(), NOW()),
('Canaletto', '지오반니 안토니오 카날', 8, 'Italy', NOW(), NOW()),
('Jean Honore Fragonard', '장 오노레 프라고나르', 8, 'France', NOW(), NOW()),
('Thomas Gainsborough', '토머스 게인즈버러', 8, 'UK', NOW(), NOW()),
('Elisabeth Vigee Le Brun', '엘리자베스 비제 르 브룅', 8, 'France', NOW(), NOW()),
('Giovanni Battista Tiepolo', '조반니 바티스타 티에폴로', 8, 'Italy', NOW(), NOW()),
('Jean Antoine Watteau', '장 앙투안 와토', 8, 'France', NOW(), NOW());
-- 낭만주의 화가
INSERT INTO `painter` (`painterNameEn`, `painterNameKr`, `movementId`, `nationality`, `regDate`, `updateDate`) VALUES
('John Constable', '존 컨스터블', 9, 'UK', NOW(), NOW()),
('Eugene Delacroix', '외젠 들라쿠르아', 9, 'France', NOW(), NOW()),
('Caspar David Friedrich', '카스파르 다비드 프리드리히', 9, 'Germany', NOW(), NOW()),
('Francisco Goya', '프란시스코 고야', 9, 'Spain', NOW(), NOW()),
('J. M. W. Turner', '조셉 말로드 윌리엄 터너', 9, 'UK', NOW(), NOW());```