首页 » PHP和MySQL Web开发(原书第4版) » PHP和MySQL Web开发(原书第4版)全文在线阅读

《PHP和MySQL Web开发(原书第4版)》28.3 实现数据库

关灯直达底部

正如前面所提到的,我们已经对在本书第二篇创建的数据库进行了少量修改。创建book_sc数据库的SQL代码如程序清单28-1所示。

程序清单28-1 book_sc.sql——创建book_sc数据库的SQL代码

create database book_sc;

use book_sc;

create table customers

(

customerid int unsigned not null auto_increment primary key,

name char(60)not null,

address char(80)not null,

city char(30)not null,

state char(20),

zip char(10),

country char(20)not null

)type=InnoDB;

create table orders

(

orderid int unsigned not null auto_increment primary key,

customerid int unsigned not null references customers(customerid),

amount float(6,2),

date date not null,

order_status char(10),

ship_name char(60)not null,

ship_address char(80)not null,

ship_city char(30)not null,

ship_state char(20),

ship_zip char(10),

ship_country char(20)not null

)type=InnoDB;

create table books

(

isbn char(13)not null primary key,

author char(100),

title char(100),

catid int unsigned,

price float(4,2)not null,

description varchar(255)

)type=InnoDB;

create table categories

(

catid int unsigned not null auto_increment primary key,

catname char(60)not null

)type=InnoDB;

create table order_items

(

orderid int unsigned not null references orders(orderid),

isbn char(13)not null references books(isbn),

item_price float(4,2)not null,

quantity tinyint unsigned not null,

primary key(orderid,isbn)

)type=InnoDB;

create table admin

(

username char(16)not null primary key,

password char(40)not null

);

grant select,insert,update,delete

on book_sc.*

to [email protected] identified by'password';

尽管最初的Book-O-Rama界面并没有错误,但要在线使用,必须满足一些其他的新需求。

对最初数据库进行的修改如下所示:

■增加更多的用户地址域。既然要建立实际的应用程序,这就很重要了。

■为每个订单增加一个运送地址。顾客的联系地址可能并不是商品运送地址,特别当他在该网站上给别人买礼物的时候。

■增加一个categories表并在books表中增加目录标识符(catid)。将图书分类会使网站更易浏览。

■增加item_price列到order_items表,因为某项商品的价格可能改变。我们要知道顾客购买时候的商品价格。

■增加一个admin表以保存管理员登录名和密码的详细信息。

■删除评论表。可以以该项目扩展特性的形式增加评论功能。作为替代,每本书有一个描述域,该域对本书作简要的介绍。

■将存储引擎修改为InnoDB。这样处理后,就可以使用外键,同时还可以在输入顾客订单信息的时候使用事务。

要在系统中建立数据库,必须以root的身份在MySQL中运行book_sc.sql脚本,如下所示:

mysql-u root-p<book_sc.sql

(需要提供root用户密码)

在进行以上操作之前,最好修改book_sc用户的密码,修改后的密码应该比原始密码"password"好。请注意,如果在book_sc.sql脚本中修改密码,还需要在db_fns.php脚本中修改它(稍后,我们将详细介绍)。

我们还要包含一个示例数据文件。该文件名为populate.sql。可以使用上述方法运行该sql语句将示例数据添加到数据库。