forked from AcaMate/AcaMate_DB
[✨] Class 관련 SQL 추가
This commit is contained in:
parent
53d81dac48
commit
c7492e0c88
|
@ -3,6 +3,7 @@
|
|||
<component name="SqlDialectMappings">
|
||||
<file url="file://$PROJECT_DIR$/scripts/AddIndex.sql" dialect="MariaDB" />
|
||||
<file url="file://$PROJECT_DIR$/scripts/Chat.sql" dialect="MariaDB" />
|
||||
<file url="file://$PROJECT_DIR$/scripts/Class.sql" dialect="MariaDB" />
|
||||
<file url="file://$PROJECT_DIR$/scripts/Push.sql" dialect="MariaDB" />
|
||||
<file url="file://$PROJECT_DIR$/scripts/Token.sql" dialect="MariaDB" />
|
||||
<file url="file://$PROJECT_DIR$/scripts/User.sql" dialect="MariaDB" />
|
||||
|
|
69
scripts/Class.sql
Normal file
69
scripts/Class.sql
Normal file
|
@ -0,0 +1,69 @@
|
|||
CREATE TABLE `class_info` (
|
||||
`id` CHAR(10) NOT NULL COMMENT '강의 구분 코드 (AMC+4숫자+3대문자)',
|
||||
`name` VARCHAR(100) NOT NULL COMMENT '강의 제목',
|
||||
`uid` CHAR(70) NOT NULL COMMENT '담당 선생님 구분 코드',
|
||||
`start_date` DATETIME NOT NULL COMMENT '강의 시작일',
|
||||
`end_date` DATETIME DEFAULT NULL COMMENT '강의 종료일',
|
||||
`day` TINYINT NOT NULL COMMENT '수업 요일 비트(월요일 부터 가장 좌측 비트)',
|
||||
`start_time` CHAR(4) NOT NULL COMMENT '수업 시작 시간',
|
||||
`end_time` CHAR(4) NOT NULL COMMENT '수업 종료 시간',
|
||||
PRIMARY KEY (`id`),
|
||||
CONSTRAINT `fk_class_teacher_uid`
|
||||
FOREIGN KEY (`uid`) REFERENCES `user`(`uid`)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE RESTRICT
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='강의(클래스) 정보';
|
||||
|
||||
|
||||
CREATE TABLE `class_map` (
|
||||
`cid` CHAR(10) NOT NULL COMMENT '강의 구분 코드',
|
||||
`uid` CHAR(70) NOT NULL COMMENT '학생(유저) 구분 코드',
|
||||
PRIMARY KEY (`cid`, `uid`),
|
||||
KEY `idx_uid` (`uid`),
|
||||
CONSTRAINT `fk_map_class_cid`
|
||||
FOREIGN KEY (`cid`) REFERENCES class_info(`id`)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_map_class_uid`
|
||||
FOREIGN KEY (`uid`) REFERENCES `user`(`uid`)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='학생-강의(클래스) 맵핑';
|
||||
|
||||
CREATE TABLE `class_attendance` (
|
||||
`cid` CHAR(10) NOT NULL COMMENT '강의 구분 코드',
|
||||
`uid` CHAR(70) NOT NULL COMMENT '학생(유저) 구분 코드',
|
||||
`attendace_date` DATETIME NOT NULL COMMENT '출석 일자',
|
||||
`attendance_state` TINYINT(1) NOT NULL COMMENT '출석 상태 (0=출석, 1=결석, 2=지각, 3=조퇴, 4=기타)',
|
||||
PRIMARY KEY (`cid`, `uid`, `attendace_date`),
|
||||
KEY `idx_uid_date` (`uid`, `attendace_date`),
|
||||
CONSTRAINT `fk_class_attendance_cid`
|
||||
FOREIGN KEY (`cid`) REFERENCES class_info(`id`)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_class_attendance_uid`
|
||||
FOREIGN KEY (`uid`) REFERENCES `user`(`uid`)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='강의별 학생 출석 정보';
|
||||
|
||||
|
||||
INSERT INTO class_info(id, name, uid, start_date, end_date, day, start_time, end_time)
|
||||
VALUES
|
||||
('AMC0000AAA','수학','AMksg345220250401','2025-06-20',NULL,124,'1800','1900'),
|
||||
('AMC0000AAB','영어','AMksg345220250401','2025-06-20',NULL,124,'1900','2000'),
|
||||
('AMC0000AAC','국어','AMksg345220250401','2025-06-20',NULL,124,'2000','2100'),
|
||||
('AMC0000AAD','과학','AMksg345220250401','2025-06-20',NULL,124,'2100','2200'),
|
||||
('AMC0000AAE','사회','AMksg345220250401','2025-06-20',NULL,124,'2200','2300');
|
||||
|
||||
INSERT INTO class_map(cid, uid)
|
||||
VALUES
|
||||
('AMC0000AAA', 'AMsdk20250612'),
|
||||
('AMC0000AAB', 'AMsdk20250612'),
|
||||
('AMC0000AAC', 'AMsdk20250612'),
|
||||
('AMC0000AAD', 'AMsdk20250612');
|
||||
|
||||
|
||||
# INSERT INTO class_attendance(cid, uid, attendace_date, attendance_state)
|
||||
# VALUES
|
||||
# ('AMC0000AAA', 'AMsdk20250612')
|
Loading…
Reference in New Issue
Block a user