20.2数据库分析
20.2 数据库分析
一个成功的网站系统由50%的业务+50%的软件组成,而50%的成功软件又由25%的数据库+25%的程序组成,所以数据库设计的好坏是一个关键。
MySQL Workbench是MySQL的一个著名的建模工具。使用Workbench建立MySQL模型是很方便的。
message系统需要的数据库表包含以下字段:id,title(标题),content(内容),createdtime(创建时间),updatedtime(更新时间)。
product系统需要的数据库表包含以下字段:id,name(名称),shortdescription(简短介绍),description(介绍),type(类型),price(价格),unit(单位),imagelink(图片链接)。
order系统需要的数据库表包含以下字段:id,product_id(产品id),customer_id(客户id),number(数量),days(天数),createdtime(创建时间),special(特殊要求)。
customer系统需要的数据库表包含以下字段:id,name(名称),gender(性别),phone(电话),email,type(类型)。
在Workbench中的数据库视图如图9-3所示。

图20-3 数据库视图
通过导出工具得到以下代码:
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="TRADITIONAL";
- -----------------------------------------------------
-- Table "goodone"."message"
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS "goodone"."message" (
"id" INT(10) NOT NULL AUTO_INCREMENT ,
"title" VARCHAR(45) NOT NULL ,
"content" VARCHAR(650) NOT NULL ,
"createdtime" VARCHAR(45) NULL ,
"updatedtime" VARCHAR(45) NULL ,
PRIMARY KEY ("id") )
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
-- -----------------------------------------------------
-- Table "goodone"."product"
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS "goodone"."product" (
"id" INT(10) NOT NULL AUTO_INCREMENT ,
"name" VARCHAR(45) NULL ,
"shortdescription" VARCHAR(45) NULL ,
"description" TEXT NULL ,
"type" VARCHAR(45) NULL ,
"price" INT(10) NULL ,
"unit" VARCHAR(45) NULL ,
"imageslink" VARCHAR(45) NULL ,
PRIMARY KEY ("id") )
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
-- -----------------------------------------------------
-- Table "goodone"."order"
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS "goodone"."order" (
"id" INT(10) NOT NULL AUTO_INCREMENT ,
"product_id" INT(10) NULL ,
"customer_id" INT(10) NULL ,
"number" INT(10) NULL ,
"days" INT(10) NULL ,
"createdtime" VARCHAR(45) NULL ,
"special" VARCHAR(45) NULL ,
PRIMARY KEY ("id") )
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
-- -----------------------------------------------------
-- Table "goodone"."customer"
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS "goodone"."customer" (
"id" INT(10) NOT NULL ,
"name" VARCHAR(45) NULL ,
"gender" ENUM("male","female") NULL ,
"phone" VARCHAR(45) NULL ,
"email" VARCHAR(45) NULL ,
"type" VARCHAR(45) NULL ,
PRIMARY KEY ("id") )
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
在MySQL中执行,便可以得到项目需要的数据库和表格,如图20-4所示。

图20-4 在MySQL中创建的数据库和表格
上一篇:20.1网站的需求分析
下一篇:20.3企业网站的实现
