##如果存在同名的數據庫,刪除此同名的數據庫。
DROP DATABASE IF EXISTS cfms;
##如果不存在字符集為utf8的cfms這個數據庫,那麼就創建
CREATE DATABASE IF NOT EXISTS cfms CHARACTER SET utf8;
##第一次時表示使用此數據庫
USE cfms;
##如果存在users這個表了,就刪除重新創建
DROP TABLE IF EXISTS cfms.users; ##如果存在要創建的數據庫就刪除
##如果不存在這個表了,就重新創建。
CREATE TABLE IF NOT EXISTS cfms.users(
id VARCHAR(36) NOT NULL, ##使用UUID,它是36位的
username VARCHAR(10) NOT NULL, ##用戶名
password VARCHAR(32) NOT NULL, ##這裡使用的是32位的MD5加密
sex VARCHAR(4) DEFAULT NULL, ##你的性別
userage VARCHAR(3) DEFAULT NULL , ##你的年齡
birthday VARCHAR(10) DEFAULT NULL, ##出生日期
email VARCHAR(100) NOT NULL, ##電子郵件
edubackground CHAR(1) DEFAULT NULL, ##你的學歷
mobile VARCHAR(11) DEFAULT NULL, ##手機號碼
tel VARCHAR(15) DEFAULT NULL, ##聯系電話
regtime BIGINT(13) DEFAULT NULL, ##注冊時間存的是時間戳,Java的時間戳為13為所以用BIGINT,用FLOAT和DOUBLE都太大
regip VARCHAR(15) DEFAULT NULL, ##注冊的ip地址,為十五位的
logtimes INT(10) DEFAULT 0, ##登錄次數
CONSTRAINT PRIMARY KEY(id) ##這個表中id作為主鍵CONSTRAINT-UNIQUE-KEY(password)##為密碼添加唯一性約束
) ENGINE=INNODB DEFAULT CHARSET=utf8;
##文件分類對應的按名稱分類的表
DROP TABLE IF EXISTS cfms.namecategory;
CREATE TABLE IF NOT EXISTS cfms.namecategory(
id VARCHAR(36) NOT NULL, ##使用UUID,它是36位的
namecategory VARCHAR(100), ##文件的類型名稱
description text, ##文件描述
user_id VARCHAR(36) NOT NULL, ##文件分類者
CONSTRAINT PRIMARY KEY(id),
CONSTRAINT namecategory_user_id_FK FOREIGN KEY(user_id) REFERENCES cfms.users(id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=INNODB DEFAULT CHARSET=utf8;
##文件分類對應的按文件類型分類的表
DROP TABLE IF EXISTS cfms.typecategory;
CREATE TABLE IF NOT EXISTS cfms.typecategory(
id VARCHAR(36) NOT NULL, ##使用UUID,它是36位的
typecategory VARCHAR(100), ##文件的類型名稱
description text, ##文件描述
user_id VARCHAR(36) NOT NULL, ##文件分類者
CONSTRAINT PRIMARY KEY(id),
CONSTRAINT typecategory_user_id_FK FOREIGN KEY(user_id) REFERENCES cfms.users(id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=INNODB DEFAULT CHARSET=utf8;
##文件分類對應的按文件時間分類的表
DROP TABLE IF EXISTS cfms.timecategory;
CREATE TABLE IF NOT EXISTS cfms.timecategory(
id VARCHAR(36) NOT NULL, ##使用UUID,它是36位的
timecategory VARCHAR(100) NOT NULL, ##文件的類型名稱
description text, ##文件描述
user_id VARCHAR(36) NOT NULL, ##文件分類者
CONSTRAINT PRIMARY KEY(id),
CONSTRAINT timecategory_user_id_FK FOREIGN KEY(user_id) REFERENCES cfms.users(id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=INNODB DEFAULT CHARSET=utf8;
##文件分類對應的按文件大小分類的表
DROP TABLE IF EXISTS cfms.sizecategroy;
CREATE TABLE IF NOT EXISTS cfms.sizecategroy(
id VARCHAR(36) NOT NULL, ##使用UUID,它是36位的
sizecategroy VARCHAR(100) NOT NULL, ##文件的類型名稱
size_min VARCHAR(20) DEFAULT NULL, ##文件最小值
size_max VARCHAR(20) DEFAULT NULL, ##文件最大值
user_id VARCHAR(36) NOT NULL, ##文件分類者
CONSTRAINT PRIMARY KEY(id),
CONSTRAINT sizecategroy_user_id_FK FOREIGN KEY(user_id) REFERENCES cfms.users(id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=INNODB DEFAULT CHARSET=utf8;
##如果存在文件信息表,那麼就刪除,如果不存在就創建
DROP TABLE IF EXISTS cfms.files;
##如果不存在這個表,就重新創建
CREATE TABLE IF NOT EXISTS cfms.files(
id VARCHAR(36) NOT NULL, ##文件的主鍵值
name VARCHAR(250) NOT NULL, ##上傳文件的名稱,文件的uuid名
realname VARCHAR(250) NOT NULL, ##上傳文件的真是名稱
path VARCHAR(250) NOT NULL, ##文件的位置
uptime BIGINT(13), ##文件的上傳時間
description text, ##文件的描述
size BIGINT(13) DEFAULT NULL, ##文件大小
keyword VARCHAR(100) DEFAULT NULL, ##文件關鍵字
user_id VARCHAR(36) NOT NULL, ##上傳人
namecategory_id VARCHAR(36) NOT NULL,
typecategory_id VARCHAR(36) NOT NULL,
timecategory_id VARCHAR(36) NOT NULL,
CONSTRAINT PRIMARY KEY(id),
CONSTRAINT files_user_id_FK FOREIGN KEY(user_id) REFERENCES cfms.users(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT files_namecategory_id_FK FOREIGN KEY(user_id) REFERENCES cfms.users(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT files_typecategory_id_FK FOREIGN KEY(user_id) REFERENCES cfms.users(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT files_timecategory_id_FK FOREIGN KEY(user_id) REFERENCES cfms.users(id) ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE=INNODB DEFAULT CHARSET=utf8;