Skip to content

Commit ae15ec7

Browse files
committed
feat(database): 更新 cs_classroom 和 cs_course_library 表结构
- 移除 cs_classroom.sql 和 cs_course_library.sql 文件中的冗余版权声明 - 在 cs_course_library 表中添加多个新的字段,包括理论、实验、实践和上机课教室类型 - 更新 cs_course_library 表的外键约束,增加与新字段的关联 - 优化索引创建逻辑,添加新的索引以支持新字段的查询
1 parent 138ac99 commit ae15ec7

File tree

2 files changed

+49
-133
lines changed

2 files changed

+49
-133
lines changed

resources/sql/cs_classroom.sql

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -26,62 +26,6 @@
2626
* --------------------------------------------------------------------------------
2727
*/
2828

29-
/*
30-
* --------------------------------------------------------------------------------
31-
* Copyright (c) 2022-NOW(至今) 锋楪技术团队
32-
* Author: 锋楪技术团队 (https://www.frontleaves.com)
33-
*
34-
* 本文件包含锋楪技术团队项目的源代码,项目的所有源代码均遵循 MIT 开源许可证协议。
35-
* --------------------------------------------------------------------------------
36-
* 许可证声明:
37-
*
38-
* 版权所有 (c) 2022-2025 锋楪技术团队。保留所有权利。
39-
*
40-
* 本软件是“按原样”提供的,没有任何形式的明示或暗示的保证,包括但不限于
41-
* 对适销性、特定用途的适用性和非侵权性的暗示保证。在任何情况下,
42-
* 作者或版权持有人均不承担因软件或软件的使用或其他交易而产生的、
43-
* 由此引起的或以任何方式与此软件有关的任何索赔、损害或其他责任。
44-
*
45-
* 使用本软件即表示您了解此声明并同意其条款。
46-
*
47-
* 有关 MIT 许可证的更多信息,请查看项目根目录下的 LICENSE 文件或访问:
48-
* https://opensource.org/licenses/MIT
49-
* --------------------------------------------------------------------------------
50-
* 免责声明:
51-
*
52-
* 使用本软件的风险由用户自担。作者或版权持有人在法律允许的最大范围内,
53-
* 对因使用本软件内容而导致的任何直接或间接的损失不承担任何责任。
54-
* --------------------------------------------------------------------------------
55-
*/
56-
57-
/*
58-
* --------------------------------------------------------------------------------
59-
* Copyright (c) 2022-NOW(至今) 锋楪技术团队
60-
* Author: 锋楪技术团队 (https://www.frontleaves.com)
61-
*
62-
* 本文件包含锋楪技术团队项目的源代码,项目的所有源代码均遵循 MIT 开源许可证协议。
63-
* --------------------------------------------------------------------------------
64-
* 许可证声明:
65-
*
66-
* 版权所有 (c) 2022-2025 锋楪技术团队。保留所有权利。
67-
*
68-
* 本软件是“按原样”提供的,没有任何形式的明示或暗示的保证,包括但不限于
69-
* 对适销性、特定用途的适用性和非侵权性的暗示保证。在任何情况下,
70-
* 作者或版权持有人均不承担因软件或软件的使用或其他交易而产生的、
71-
* 由此引起的或以任何方式与此软件有关的任何索赔、损害或其他责任。
72-
*
73-
* 使用本软件即表示您了解此声明并同意其条款。
74-
*
75-
* 有关 MIT 许可证的更多信息,请查看项目根目录下的 LICENSE 文件或访问:
76-
* https://opensource.org/licenses/MIT
77-
* --------------------------------------------------------------------------------
78-
* 免责声明:
79-
*
80-
* 使用本软件的风险由用户自担。作者或版权持有人在法律允许的最大范围内,
81-
* 对因使用本软件内容而导致的任何直接或间接的损失不承担任何责任。
82-
* --------------------------------------------------------------------------------
83-
*/
84-
8529
USE `class-scheduling-system`;
8630
CREATE TABLE `cs_classroom`
8731
(

resources/sql/cs_course_library.sql

Lines changed: 49 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -25,91 +25,63 @@
2525
* 对因使用本软件内容而导致的任何直接或间接的损失不承担任何责任。
2626
* --------------------------------------------------------------------------------
2727
*/
28-
29-
/*
30-
* --------------------------------------------------------------------------------
31-
* Copyright (c) 2022-NOW(至今) 锋楪技术团队
32-
* Author: 锋楪技术团队 (https://www.frontleaves.com)
33-
*
34-
* 本文件包含锋楪技术团队项目的源代码,项目的所有源代码均遵循 MIT 开源许可证协议。
35-
* --------------------------------------------------------------------------------
36-
* 许可证声明:
37-
*
38-
* 版权所有 (c) 2022-2025 锋楪技术团队。保留所有权利。
39-
*
40-
* 本软件是“按原样”提供的,没有任何形式的明示或暗示的保证,包括但不限于
41-
* 对适销性、特定用途的适用性和非侵权性的暗示保证。在任何情况下,
42-
* 作者或版权持有人均不承担因软件或软件的使用或其他交易而产生的、
43-
* 由此引起的或以任何方式与此软件有关的任何索赔、损害或其他责任。
44-
*
45-
* 使用本软件即表示您了解此声明并同意其条款。
46-
*
47-
* 有关 MIT 许可证的更多信息,请查看项目根目录下的 LICENSE 文件或访问:
48-
* https://opensource.org/licenses/MIT
49-
* --------------------------------------------------------------------------------
50-
* 免责声明:
51-
*
52-
* 使用本软件的风险由用户自担。作者或版权持有人在法律允许的最大范围内,
53-
* 对因使用本软件内容而导致的任何直接或间接的损失不承担任何责任。
54-
* --------------------------------------------------------------------------------
55-
*/
56-
5728
USE `class-scheduling-system`;
58-
CREATE TABLE `cs_course_library`
59-
(
60-
`course_library_uuid` CHAR(32) NOT NULL PRIMARY KEY COMMENT '课程库主键',
61-
`id` VARCHAR(32) NOT NULL COMMENT '课程编号',
62-
`name` VARCHAR(32) NOT NULL COMMENT '课程库名称',
29+
CREATE TABLE `cs_course_library` (
30+
`course_library_uuid` CHAR(32) NOT NULL PRIMARY KEY COMMENT '课程库主键',
31+
`id` VARCHAR(32) NOT NULL COMMENT '课程编号',
32+
`name` VARCHAR(32) NOT NULL COMMENT '课程库名称',
6333
`english_name` VARCHAR(128) NULL COMMENT '课程英文名称',
64-
`category` CHAR(32) NULL COMMENT '课程类别',
65-
`property` CHAR(32) NULL COMMENT '课程属性',
66-
`type` CHAR(32) NOT NULL COMMENT '课程类型',
67-
`nature` CHAR(32) NULL COMMENT '课程性质',
68-
`department` CHAR(32) NOT NULL COMMENT '开课学院',
69-
`is_enabled` BOOLEAN NOT NULL DEFAULT TRUE COMMENT '是否启用',
70-
`total_hours` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '总学时',
71-
`week_hours` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '周学时',
72-
`theory_hours` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '理论学时',
73-
`experiment_hours` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '实验学时',
74-
`practice_hours` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '实践学时',
75-
`computer_hours` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '上机学时',
76-
`other_hours` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '其他学时',
77-
`credit` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '学分',
78-
`description` TEXT NULL COMMENT '课程库描述',
79-
`edit_user` CHAR(32) NULL COMMENT '编辑人',
80-
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
81-
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
82-
) ENGINE = InnoDB
83-
DEFAULT CHARSET = utf8mb4
84-
COLLATE = utf8mb4_unicode_ci
85-
COMMENT = '课程库表';
86-
34+
`category` CHAR(32) NULL COMMENT '课程类别',
35+
`property` CHAR(32) NULL COMMENT '课程属性',
36+
`type` CHAR(32) NOT NULL COMMENT '课程类型',
37+
`nature` CHAR(32) NULL COMMENT '课程性质',
38+
`department` CHAR(32) NOT NULL COMMENT '开课学院',
39+
`is_enabled` BOOLEAN NOT NULL DEFAULT TRUE COMMENT '是否启用',
40+
`total_hours` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '总学时',
41+
`week_hours` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '周学时',
42+
`theory_hours` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '理论学时',
43+
`experiment_hours` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '实验学时',
44+
`practice_hours` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '实践学时',
45+
`computer_hours` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '上机学时',
46+
`other_hours` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '其他学时',
47+
`credit` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '学分',
48+
`theory_classroom_type` CHAR(32) NULL COMMENT '理论课教室类型',
49+
`experiment_classroom_type` CHAR(32) NULL COMMENT '实验课教室类型',
50+
`practice_classroom_type` CHAR(32) NULL COMMENT '实践课教室类型',
51+
`computer_classroom_type` CHAR(32) NULL COMMENT '上机课教室类型',
52+
`description` TEXT NULL COMMENT '课程库描述',
53+
`edit_user` CHAR(32) NULL COMMENT '编辑人',
54+
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
55+
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
56+
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '课程库表';
8757
CREATE UNIQUE INDEX `uk_course_library_id` ON `cs_course_library` (`id`) COMMENT '课程编号唯一索引';
88-
8958
-- 添加优化查询的索引
9059
CREATE INDEX `idx_course_library_department` ON `cs_course_library` (`department`) COMMENT '开课学院索引';
9160
CREATE INDEX `idx_course_library_type` ON `cs_course_library` (`type`) COMMENT '课程类型索引';
9261
CREATE INDEX `idx_course_library_category` ON `cs_course_library` (`category`) COMMENT '课程类别索引';
9362
CREATE INDEX `idx_course_library_nature` ON `cs_course_library` (`nature`) COMMENT '课程性质索引';
9463
CREATE INDEX `idx_course_library_is_enabled` ON `cs_course_library` (`is_enabled`) COMMENT '启用状态索引';
9564
CREATE INDEX `idx_course_library_credit` ON `cs_course_library` (`credit`) COMMENT '学分索引';
96-
65+
CREATE INDEX `idx_course_library_theory_classroom_type` ON `cs_course_library` (`theory_classroom_type`) COMMENT '理论课教室类型索引';
66+
CREATE INDEX `idx_course_library_experiment_classroom_type` ON `cs_course_library` (`experiment_classroom_type`) COMMENT '实验课教室类型索引';
67+
CREATE INDEX `idx_course_library_practice_classroom_type` ON `cs_course_library` (`practice_classroom_type`) COMMENT '实践课教室类型索引';
68+
CREATE INDEX `idx_course_library_computer_classroom_type` ON `cs_course_library` (`computer_classroom_type`) COMMENT '上机课教室类型索引';
9769
ALTER TABLE `cs_course_library`
98-
ADD CONSTRAINT `fk_course_library_category`
99-
FOREIGN KEY (`category`) REFERENCES `cs_course_category` (`course_category_uuid`)
100-
ON DELETE SET NULL ON UPDATE CASCADE,
101-
ADD CONSTRAINT `fk_course_library_property`
102-
FOREIGN KEY (`property`) REFERENCES `cs_course_property` (`course_property_uuid`)
103-
ON DELETE SET NULL ON UPDATE CASCADE,
104-
ADD CONSTRAINT `fk_course_library_type`
105-
FOREIGN KEY (`type`) REFERENCES `cs_course_type` (`course_type_uuid`)
106-
ON DELETE RESTRICT ON UPDATE CASCADE,
107-
ADD CONSTRAINT `fk_course_library_nature`
108-
FOREIGN KEY (`nature`) REFERENCES `cs_course_nature` (`course_nature_uuid`)
109-
ON DELETE SET NULL ON UPDATE CASCADE,
110-
ADD CONSTRAINT `fk_course_library_department`
111-
FOREIGN KEY (`department`) REFERENCES `cs_department` (`department_uuid`)
112-
ON DELETE RESTRICT ON UPDATE CASCADE,
113-
ADD CONSTRAINT `fk_course_library_edit_user`
114-
FOREIGN KEY (`edit_user`) REFERENCES `cs_user` (`user_uuid`)
115-
ON DELETE SET NULL ON UPDATE CASCADE;
70+
ADD CONSTRAINT `fk_course_library_category` FOREIGN KEY (`category`) REFERENCES `cs_course_category` (`course_category_uuid`) ON DELETE
71+
SET NULL ON UPDATE CASCADE,
72+
ADD CONSTRAINT `fk_course_library_property` FOREIGN KEY (`property`) REFERENCES `cs_course_property` (`course_property_uuid`) ON DELETE
73+
SET NULL ON UPDATE CASCADE,
74+
ADD CONSTRAINT `fk_course_library_type` FOREIGN KEY (`type`) REFERENCES `cs_course_type` (`course_type_uuid`) ON DELETE RESTRICT ON UPDATE CASCADE,
75+
ADD CONSTRAINT `fk_course_library_nature` FOREIGN KEY (`nature`) REFERENCES `cs_course_nature` (`course_nature_uuid`) ON DELETE
76+
SET NULL ON UPDATE CASCADE,
77+
ADD CONSTRAINT `fk_course_library_department` FOREIGN KEY (`department`) REFERENCES `cs_department` (`department_uuid`) ON DELETE RESTRICT ON UPDATE CASCADE,
78+
ADD CONSTRAINT `fk_course_library_edit_user` FOREIGN KEY (`edit_user`) REFERENCES `cs_user` (`user_uuid`) ON DELETE
79+
SET NULL ON UPDATE CASCADE,
80+
ADD CONSTRAINT `fk_course_library_theory_classroom_type` FOREIGN KEY (`theory_classroom_type`) REFERENCES `cs_classroom_type` (`class_type_uuid`) ON DELETE
81+
SET NULL ON UPDATE CASCADE,
82+
ADD CONSTRAINT `fk_course_library_experiment_classroom_type` FOREIGN KEY (`experiment_classroom_type`) REFERENCES `cs_classroom_type` (`class_type_uuid`) ON DELETE
83+
SET NULL ON UPDATE CASCADE,
84+
ADD CONSTRAINT `fk_course_library_practice_classroom_type` FOREIGN KEY (`practice_classroom_type`) REFERENCES `cs_classroom_type` (`class_type_uuid`) ON DELETE
85+
SET NULL ON UPDATE CASCADE,
86+
ADD CONSTRAINT `fk_course_library_computer_classroom_type` FOREIGN KEY (`computer_classroom_type`) REFERENCES `cs_classroom_type` (`class_type_uuid`) ON DELETE
87+
SET NULL ON UPDATE CASCADE;

0 commit comments

Comments
 (0)