diff --git a/database/script.sql b/database/script.sql new file mode 100644 index 0000000..f057ec9 --- /dev/null +++ b/database/script.sql @@ -0,0 +1,273 @@ +create table ImageFiles +( + id int auto_increment + primary key, + user_id varchar(10) not null comment '上传用户', + filepath varchar(50) not null comment '文件相对路径', + md5 varchar(32) not null comment '文件hash', + create_time datetime(6) default CURRENT_TIMESTAMP(6) not null comment '文件创建时间' +) + comment '图片文件信息'; + +create table Managers +( + id int auto_increment + primary key, + name varchar(10) not null, + password varchar(32) not null, + `desc` varchar(20) not null, + img_id int null, + account varchar(10) not null comment '帐号', + duty varchar(32) not null comment '职务', + constraint fk_Managers_img_id_id + foreign key (img_id) references ImageFiles (id) +) + comment '后台管理员'; + +create table ManagerTokens +( + id int auto_increment + primary key, + token varchar(32) not null, + ip varchar(32) not null, + create_time datetime(6) default CURRENT_TIMESTAMP(6) not null, + device varchar(256) not null, + manager_id int not null comment '授权管理员', + constraint fk_ManagerTokens_manager_id_id + foreign key (manager_id) references Managers (id) +) + comment '管理员授权令牌'; + +create table Notifications +( + id int auto_increment + primary key, + title varchar(10) not null comment '通知标题', + content varchar(256) not null comment '通知内容', + receiver_id int not null comment '接收者', + receiver_client varchar(10) not null comment '接收客户端', + `read` tinyint(1) default 0 not null comment '阅读状态', + pull tinyint(1) default 0 not null comment '拉取状态', + create_time datetime(6) default CURRENT_TIMESTAMP(6) not null comment '通知创建时间' +) + comment '通知记录'; + +create table Users +( + id int auto_increment + primary key, + name varchar(10) not null, + password varchar(32) not null, + `desc` varchar(20) not null, + img_id int null, + student_id varchar(8) not null comment '学号', + association_id int null comment '社团id', + constraint Users_student_id_unique + unique (student_id), + constraint fk_Users_img_id_id + foreign key (img_id) references ImageFiles (id) +) + comment '用户'; + +create table AuditLeggings +( + id int auto_increment + primary key, + user_id int not null comment '申请人', + apply_time datetime(6) default CURRENT_TIMESTAMP(6) not null comment '申请时间', + manager_id int null comment '负责人', + accept_time datetime(6) null comment '受理时间', + cause varchar(30) null comment '审核理由', + result tinyint(1) null comment '审核结果', + audit_time datetime(6) null comment '审核时间', + next_audit int null comment '复审记录', + constraint fk_AuditLeggings_manager_id_id + foreign key (manager_id) references Managers (id), + constraint fk_AuditLeggings_next_audit_id + foreign key (next_audit) references AuditLeggings (id), + constraint fk_AuditLeggings_user_id_id + foreign key (user_id) references Users (id) +) + comment '审核记录'; + +create table Associations +( + id int auto_increment + primary key, + name varchar(10) not null comment '社团名称', + `desc` varchar(30) not null comment '社团介绍', + logo int not null comment '社团logo', + level varchar(1) null comment '社团级别', + faculty varchar(32) not null comment '所属院系', + audit_id int not null comment '审核信息', + constraint fk_Associations_audit_id_id + foreign key (audit_id) references AuditLeggings (id), + constraint fk_Associations_logo_id + foreign key (logo) references ImageFiles (id) +) + comment '社团信息'; + +create table Activities +( + id int auto_increment + primary key, + activity_name varchar(10) not null comment '活动名称', + activity_time datetime(6) not null comment '活动时间', + activity_address varchar(30) not null comment '活动地点', + activity_desc varchar(30) not null comment '活动介绍', + activity_size int not null comment '活动人数', + audit_id int not null comment '审核信息', + association_id int not null comment '活动社团', + constraint fk_Activities_association_id_id + foreign key (association_id) references Associations (id), + constraint fk_Activities_audit_id_id + foreign key (audit_id) references AuditLeggings (id) +) + comment '社团活动'; + +create table ActivityComments +( + id int auto_increment + primary key, + content varchar(80) not null comment '评论内容', + create_time datetime(6) default CURRENT_TIMESTAMP(6) not null comment '评论时间', + user_id int not null comment '评论用户', + activity_id int not null comment '评论活动', + constraint fk_ActivityComments_activity_id_id + foreign key (activity_id) references Activities (id), + constraint fk_ActivityComments_user_id_id + foreign key (user_id) references Users (id) +) + comment '活动评论'; + +create table AssociationMembers +( + id int auto_increment + primary key, + user_id int not null comment '社团成员id', + association_id int not null comment '社团Id', + is_head tinyint(1) not null comment '是否团长', + constraint fk_AssociationMembers_association_id_id + foreign key (association_id) references Associations (id), + constraint fk_AssociationMembers_user_id_id + foreign key (user_id) references Users (id) +) + comment '社团成员信息'; + +create table JoinAssociations +( + id int auto_increment + primary key, + user_id int not null comment '申请人', + association_id int not null comment '申请社团', + create_time datetime(6) default CURRENT_TIMESTAMP(6) not null comment '申请时间', + audit_time datetime(6) null comment '审核时间', + result tinyint(1) null comment '申请结果', + constraint fk_JoinAssociations_association_id_id + foreign key (association_id) references Associations (id), + constraint fk_JoinAssociations_user_id_id + foreign key (user_id) references Users (id) +) + comment '入团申请记录'; + +create table LeaveMessages +( + id int auto_increment + primary key, + user_id int not null comment '留言用户', + message varchar(20) not null comment '留言内容', + create_time datetime(6) default CURRENT_TIMESTAMP(6) not null comment '留言创建时间', + constraint fk_LeaveMessages_user_id_id + foreign key (user_id) references Users (id) +) + comment '留言'; + +create table PhotoAlbums +( + id int auto_increment + primary key, + activity_id int not null comment '所属活动', + photo_id int not null comment '照片', + name varchar(10) not null comment '照片名', + constraint fk_PhotoAlbums_activity_id_id + foreign key (activity_id) references Activities (id), + constraint fk_PhotoAlbums_photo_id_id + foreign key (photo_id) references ImageFiles (id) +) + comment '相册'; + +create table Questions +( + id int auto_increment + primary key, + question varchar(30) not null comment '问题', + optionsA varchar(15) not null comment '选项A', + optionsB varchar(15) not null comment '选项B', + optionsC varchar(15) not null comment '选项C', + optionsD varchar(15) not null comment '选项D', + answer int not null comment '答案', + association_id int not null comment '所属社团', + constraint fk_Questions_association_id_id + foreign key (association_id) references Associations (id) +) + comment '题库'; + +create table Answers +( + id int auto_increment + primary key, + question_id int not null comment '问题', + answer int not null comment '答案', + join_id int not null comment '入团申请记录', + constraint fk_Answers_join_id_id + foreign key (join_id) references JoinAssociations (id), + constraint fk_Answers_question_id_id + foreign key (question_id) references Questions (id) +) + comment '试题'; + +create table Renames +( + id int auto_increment + primary key, + new_name varchar(10) not null comment '新名称', + cause varchar(30) not null comment '换名理由', + association_id int not null comment '重命名社团', + audit_id int not null comment '审核信息', + constraint fk_Renames_association_id_id + foreign key (association_id) references Associations (id), + constraint fk_Renames_audit_id_id + foreign key (audit_id) references AuditLeggings (id) +) + comment '社团重命名记录'; + +create table Tendencies +( + id int auto_increment + primary key, + user_id int not null comment '点赞用户', + activity_id int not null comment '点赞活动', + create_time datetime(6) default CURRENT_TIMESTAMP(6) not null comment '点赞时间', + type int not null comment '倾向类型', + constraint fk_Tendencies_activity_id_id + foreign key (activity_id) references Activities (id), + constraint fk_Tendencies_user_id_id + foreign key (user_id) references Users (id) +) + comment '用户倾向'; + +create table UserTokens +( + id int auto_increment + primary key, + token varchar(32) not null, + ip varchar(32) not null, + create_time datetime(6) default CURRENT_TIMESTAMP(6) not null, + device varchar(256) not null, + user_id int not null comment '授权用户', + constraint fk_UserTokens_user_id_id + foreign key (user_id) references Users (id) +) + comment '用户授权令牌'; + +