在实际使用上,由于本机已有SQL Server而没有mysql,一时偷懒选择用SQL Server完成数据库的工作(不知道以后要用多少时间填坑)
建立数据库
USE masterGOCREATE DATABASE tmall_ssmON(NAME = tmall_Data,FILENAME = 'C:\SQL\tmall_ssm_data.mdf',SIZE = 10,MAXSIZE = UNLIMITED,FILEGROWTH = 10)LOG ON(NAME = 'tmall_ssm_Log',FILENAME = 'C:\SQL\tmall_ssm_log.ldf',SIZE = 5MB,MAXSIZE = 25MB,FILEGROWTH = 5MB)--设置默认编码为utf8COLLATE Chinese_PRC_CI_ASGO
PS:在使用SQL Server期间遇到了使用windows身份认证无法连接的问题,我的解决方法是使用SQL server认证(类似于mysql的root用户)登录,还好密码简单没有忘记…然后修改windows认证的用户(用户名一般和本机计算机的名字以及Microsoft登录的用户名有关)的默认数据库为master即可。
创建各个表
表结构
--创建用户表CREATE TABLE [user](id INT NOT NULL IDENTITY(1,1) PRIMARY KEY,[name] CHAR(255) DEFAULT NULL,[password] CHAR(255),)
…解决了连接、设置数据库utf8编码、关键词不能用等问题..我还是吐了,mysql与sql server还是有太多不一样的地方了,我还是不偷懒了..
没想到装mysql又是一段艰辛的路程..好在终于下载到位了,就是还需要一个GUI界面,hh如果我能忍受命令行界面好像也行!
后来我还是使用了Mysql-Front,由于使用的是Mysql 8.0版本,因此会产生一些问题。具体可自行百度。Front的开发者也是有意思..因为觉得加密的理念不对干脆就不更新了..
以上步骤在Mysql中重新来。
建立数据库
DROP DATABASE IF EXISTS tmall_ssm;CREATE DATABASE tmall_ssm DEFAULT CHARACTER SET utf8;
建立各个表
#创建类别表create table category (id int(11) not null auto_increment,name varchar(255) default null,primary key (id)) ENGINE = InnoDB default charset = utf8;#创建(商品)属性表create table property (id int(11) not null auto_increment,cid int(11) default null,name varchar(255) default null,primary key (id),constraint fk_proerpty_category foreign key (cid) references category (id)) ENGINE = InnoDB DEFAULT CHARSET = utf8;#创建产品表CREATE TABLE product (id INT(11) NOT NULL AUTO_INCREMENT,name VARCHAR(255) DEFAULT NULL, #产品名称subTitle VARCHAR(255) DEFAULT NULL, #副标题originalPrice FLOAT DEFAULT NULL, #原价promotePrice FLOAT DEFAULT NULL, #优惠价格stock INT(11) DEFAULT NULL, #库存cid INT(11) DEFAULT NULL,createDate DATETIME DEFAULT NULL,PRIMARY KEY (id),CONSTRAINT fk_product_category FOREIGN KEY (cid) REFERENCES category (id)) ENGINE = InnoDB DEFAULT CHARSET = utf8;#创建属性值表CREATE TABLE propertyvalue (id INT(11) NOT NULL AUTO_INCREMENT,pid INT(11) DEFAULT NULL,ptid INT(11) DEFAULT NULL,value VARCHAR(255) DEFAULT NULL,PRIMARY KEY (id),CONSTRAINT fk_propertyvalue_property FOREIGN KEY (ptid) REFERENCES property (id),CONSTRAINT fk_propertyvalue_product FOREIGN KEY (pid) REFERENCES product (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8;#产品图片表CREATE TABLE productimage (id INT(11) NOT NULL AUTO_INCREMENT,pid INT(11) DEFAULT NULL,type VARCHAR(255) DEFAULT NULL,PRIMARY KEY (id),CONSTRAINT fk_productimage_product FOREIGN KEY (pid) REFERENCES product (id)) ENGINE = InnoDB DEFAULT CHARSET = utf8;#评价表CREATE TABLE review (id INT(11) NOT NULL AUTO_INCREMENT,content VARCHAR(4000) DEFAULT NULL,uid INT(11) DEFAULT NULL,pid INT(11) DEFAULT NULL,createDate DATETIME DEFAULT NULL,PRIMARY KEY (id),CONSTRAINT fk_review_product FOREIGN KEY (pid) REFERENCES product (id),CONSTRAINT fk_review_user FOREIGN KEY (uid) REFERENCES user (id)) ENGINE = InnoDB DEFAULT CHARSET = utf8;
注意 mysql中最好不要使用—注释,使用#来单行注释
特注:SQL语句虽然对大小写不敏感,但还是建议使用大写,这是由于小写语句会在执行时转化为大写,编写时直接使用大写可以减少运行所需的时间
仅仅一个属性表有些抽象,这里举出一个实列
