Ở những bài trước, chúng ta đã đề cập tới các ứng dụng cơ bản, gần gũi với môi trường làm việc của chúng ta. Trong bài này, chúng ta sẽ xây dựng hệ thống quản lý các hóa đơn đặt hàng khi người dùng đặt hàng trực tuyến.
a. Ta khởi tạo bảng CSDL:
• Bảng category chứa danh mục các sản phẩm • Bảng product chứa danh sách các sản phẩm
• Bảng Customers chứa thông tin của khách hàng mua hàng • Bảng Orders chứa thông tin hóa đơn đặt hàng của khách hàng • Bảng Order_detail chứa thông tin chi tiết của một hóa đơn nào đó. Các ràng buộc:
• Một Category có nhiều Product • Một Customers có nhiều Orders • Một Orders có nhiều Order_Detail
Lênh SQL để tạo CSDL: CREATE TABLE `category` (
`CatID` smallint(5) unsigned NOT NULL auto_increment, `CatName` varchar(30) NOT NULL,
`CatStatus` tinyint(4) NOT NULL, PRIMARY KEY (`CatID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; CREATE TABLE `customers` (
`CusID` mediumint(9) NOT NULL auto_increment, `CusName` varchar(30) NOT NULL,
`CusUser` varchar(30) NOT NULL, `CusPass` varchar(30) NOT NULL, `CusAdd` varchar(50) NOT NULL, `CusEmail` varchar(30) NOT NULL, `CusPhone` varchar(15) default NULL,
`CusStatus` tinyint(3) unsigned NOT NULL default '1', PRIMARY KEY (`CusID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; CREATE TABLE `orders` (
`OID` int(11) NOT NULL auto_increment, `OName` varchar(30) NOT NULL,
`OAdd` varchar(50) NOT NULL, `OPhone` varchar(15) default NULL, `ODate` datetime NOT NULL,
`OShipdate` date NOT NULL, `OStatus` tinyint(4) NOT NULL, `CusID` int(11) NOT NULL, PRIMARY KEY (`OID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; CREATE TABLE `order_detail` (
`OID` int(11) NOT NULL, `ProID` int(11) NOT NULL, `OD_Quan` int(11) NOT NULL, `OD_Price` int(11) NOT NULL, PRIMARY KEY (`OID`,`ProID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE `product` (
`ProID` int(11) NOT NULL auto_increment, `ProQuantity` int(11) NOT NULL,
`ProName` varchar(30) NOT NULL, `ProDesc` text NOT NULL,
`ProPrice` int(11) NOT NULL, `ProImage` text NOT NULL, `ProStatus` tinyint(4) NOT NULL, `ProWarranty` int(11) NOT NULL, `CatID` int(11) NOT NULL,
PRIMARY KEY (`ProID`)