CREATE TABLE school (
school_id INT PRIMARY KEY AUTO_INCREMENT, -- 学校id
school_name VARCHAR(100) NOT NULL UNIQUE -- 学校名称
);
CREATE TABLE user (
user_id INT PRIMARY KEY AUTO_INCREMENT, -- 用户id,主键
username VARCHAR(50) NOT NULL UNIQUE, -- 登录用户名
password VARCHAR(100) NOT NULL, -- 用户密码
school_id INT, -- 所属学校ID
role VARCHAR(20) NOT NULL, -- 用户角色(学生/教职工/商业人士)
gender VARCHAR(10), -- 性别
qq VARCHAR(200), -- qq
email VARCHAR(200), -- email
register_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 注册时间
login_count INT DEFAULT 0, -- 登录次数
space_click INT DEFAULT 0, -- 空间点击量
avatar_url VARCHAR(255), -- 头像图片路径
space_title VARCHAR(100), -- 个人空间标题
space_intro TEXT, -- 个人空间介绍
FOREIGN KEY (school_id) REFERENCES school(school_id) ON DELETE SET NULL -- 外键关联学校表
) ;
CREATE TABLE blog (
blog_id INT PRIMARY KEY AUTO_INCREMENT, -- 日志id, 主键
user_id INT NOT NULL, -- 日志作者ID
blog_title VARCHAR(200) NOT NULL, -- 日志标题
category VARCHAR(50) NOT NULL, -- 日志分类
content TEXT NOT NULL, -- 日志正文
image_url VARCHAR(255), -- 日志配图
publish_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 发表时间
view_count INT DEFAULT 0, -- 日志查看次数
FOREIGN KEY (user_id) REFERENCES user(user_id) ON DELETE CASCADE -- 外键关联用户表
);
CREATE TABLE album (
album_id INT PRIMARY KEY AUTO_INCREMENT, -- 相册/照片唯一标识,自增
user_id INT NOT NULL, -- 所有者ID,关联用户表
name VARCHAR(100) NOT NULL, -- 相册名/照片名
perm VARCHAR(30) DEFAULT '所有人', -- 浏览权限(所有人/好友/同校)
upload_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 创建/上传时间,默认当前时间
FOREIGN KEY (user_id) REFERENCES user(user_id) ON DELETE CASCADE -- 外键关联用户表
) ;
CREATE TABLE circle (
circle_id INT PRIMARY KEY AUTO_INCREMENT, -- 圈子id,主键
c_creator_id INT NOT NULL, -- 创建者id
name VARCHAR(100) NOT NULL, -- 圈子名称
intro TEXT, -- 圈子简介
category VARCHAR(50), -- 圈子分类
join_type VARCHAR(20) DEFAULT '自由加入', -- 加入方式
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 创建时间
FOREIGN KEY (c_creator_id) REFERENCES user(user_id) ON DELETE CASCADE -- 外键关联创建者
);
CREATE TABLE activity (
act_id INT PRIMARY KEY AUTO_INCREMENT, -- 活动id
a_creator_id INT NOT NULL, -- 创建者ID
title VARCHAR(200) NOT NULL, -- 活动主题
content TEXT NOT NULL, -- 活动详细内容
start_time DATETIME NOT NULL, -- 活动开始时间
end_time DATETIME NOT NULL, -- 活动结束时间
location VARCHAR(200) NOT NULL, -- 活动地点
FOREIGN KEY (a_creator_id) REFERENCES user(user_id) ON DELETE CASCADE -- 外键关联创建者
) ;
给我er图