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企业网站的实现