Hướng dẫn tạo cơ sở dữ liệu (CSDL) cho
web bán hàng
B n ang có ý nh mu n làm 1 website bán s n ph m mà ch a có nh h ng làm th nào,c s ạ đ đị ố ả ẩ ư đị ướ ế ơ ở
d li u c a nó g m nh ng gì và làm cái gì tr c?Qua bài này vi t mình mu n các b n có th tr l i ữ ệ ủ ồ ữ ướ ế ố ạ ể ả ờ
ph n nào có nh ng th c m c trên.Và ây là bài u tiên trong seriesầ ữ ắ ắ đ đầ h ng d n làm websiteướ ẫ bán
hàng và thanh toán tr c tuy nự ế c a mình.Các b n hãy xem các bài trong series này có th t ủ ạ để ể ự
làm c 1 website bán hàng vàđượ thanh toán tr c tuy n nhé.ự ế
– V i mình làm 1ớ để website b t k nào ó i u u tiên mình quan tâm ó chính là ch c n ng ấ ỳ đ đề đầ đ ứ ă
chính c a website làm v cái này,quy trình nghi p v và x lý s th nào?Tr c tiên chúng ta c n ủ ề ệ ụ ử ẽ ế ướ ầ
tr l i c nh ng câu h i ó thì m i b t tay vào thi t k website c.N u các b n hi u sai yêu ả ờ đượ ữ ỏ đ ớ ắ ế ế đượ ế ạ ể
c u ho c ch c n ng c a website s d n t i tình tr ng làm sai d n t i ph i ch nh s a nhi u ho c làmầ ặ ứ ă ủ ẽ ẫ ớ ạ ẫ ớ ả ỉ ử ề ặ
ch c n ng không c t i u.ứ ă đượ ố ư
– Và b c ti p theo c a chúng ta s ph i làm gì ây? i v i nh ng công ty l p trình thì th ng ướ ế ủ ẽ ả đ Đố ớ ữ ậ ườ
phân bi t rõ công vi c cho t ng ng i,t ng b ph n ví d ng i chuyên v bên phân tích thi t k ệ ệ ừ ườ ừ ộ ậ ụ ườ ề ế ế
h th ng,ng i chuy nệ ố ườ ể làm giao di nệ và ng i chuyên code… ph ng di n chúng ta là l p trình ườ Ở ươ ệ ậ
viên không nh ng c n bi t code mà còn bi t phân tích thi t k h th ng c ng nh bi t 1 chút v làmữ ầ ế ế ế ế ệ ố ũ ư ế ề
giao di n (ệ html và css).Và nh t là i v i các b n ang nghiên c u v l p trình website thì t t nhiênấ đố ớ ạ đ ứ ề ậ ấ
t t c công vi c trên các b n c n t làm r i.Hôm nay mình s h ng d n cho các b n v ph n u ấ ả ệ ạ ầ ự ồ ẽ ướ ẫ ạ ề ầ đầ
tiên ó chính là làm c s di u (đ ơ ở ệ CSDL) cho website bán hàng m c n gi n nh t (sau này ở ứ độđơ ả ấ
quen r i các b n có th t phát tri n lên).ồ ạ ể ự ể
– Tr c tiên vào làm v c s d li u thì các b n c n bi t website c a chúng ta qu n lý gì?mình xinướ ề ơ ở ữ ệ ạ ầ ế ủ ả
a ra nh ng yêu c u c b n nh t c n có 1 website bán s n ph m ó chính là:đư ữ ầ ơ ả ấ ầ ở ả ẩ đ
• Qu n tr viênả ị
• Danh m c s n ph mụ ả ẩ
• S n ph mả ẩ
• hàngĐơ
• Giao d chị
• Thành viên
….
Ngoài ra còn r t nhi u các ch c n ng khác c n qu n lý,nh ng ban u chúng ta c xây d ng 1 c ấ ề ứ ă ầ ả ư đầ ứ ự ơ
s d li u m c n gi n ã.ở ữ ệ ở ứ độđơ ả đ
– Các b n có th s d ng l nh ho c vào tr c ti pạ ể ử ụ ệ ặ ự ế phpMyadmin t o các b ng và các tr ng d để ạ ả ươ ữ
li uệ
Chú ý: n u b n nào theo dõi lo t series h ng d n làm website bán hàng này thì c n chú ýế ạ ạ ướ ẫ ầ
k các b ng,ch c n ng và các tr ng d li u này,vì trong t t c các bài h ng d n mình ỹ ả ứ ă ườ ữ ệ ấ ả ướ ẫ
u s d ng t i 1 trong các b ng này.đề ử ụ ớ ả
Hướng dẫn tạo cơ sở dữ liệu(CSDL) cho web bán
hàng
1.Xây dựng bảng quản trị website (admin)
1
2
3
4
5
6
7
CREATE TABLE IF NOT EXISTS `admin` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`password` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`name` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=6 ;
– V i b ng qu n tr này chúng ta c n l u các tr ng thông tin :ớ ả ả ị ầ ư ườ
1. id : khóa chính và tr ng d li u này mình t t ngườ ữ ệ để ự ă
2. name: h tênọ
3. username: tên ng nh pđă ậ
4. password: m t kh uậ ẩ
Và k t qu s c nh hình phía d i.ế ả ẽ đượ ư ướ
T o csdl cho website bán hàngạ
2.Xây dựng thành viên (user)
1
2
3
4
5
6
7
CREATE TABLE IF NOT EXISTS `user` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`phone` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
`address` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(40) COLLATE utf8_unicode_ci NOT NULL,
`created` int(11) NOT NULL,
PRIMARY KEY (`id`)
8
9
10
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=19 ;
– B ng này l u các thành viên c a website,v i b ng thành viên này chúng ta c n l u các tr ngả để ư ủ ớ ả ầ ư ườ
thông tin :
1. id : khóa chính
2. name: h tênọ
3. email: email,s d ng ng nh pử ụ đểđă ậ
4. password: m t kh u ng nh pậ ẩ đă ậ
5. address: a chđị ỉ
6. created: th i i m ng ký thành viênờ để đă
Và k t qu s c nh hình phía d i.ế ả ẽ đượ ư ướ
B ng l u thông tin thành viênả ư
3.Xây dựng bảng danh mục sản phẩm (catalog)
1
2
3
4
5
6
7
CREATE TABLE IF NOT EXISTS `catalog` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`parent_id` int(11) NOT NULL DEFAULT '0',
`sort_order` tinyint(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=24 ;
– V i b ng danh m c s n ph m này chúng ta c n l u các tr ng thông tin :ớ ả ụ ả ẩ ầ ư ườ
1. id : khóa chính và tr ng d li u này mình t t ngườ ữ ệ để ự ă
2. name: tên danh m cụ
3. parent_id: id c a danh m c cha,vì danh m c s c phân theo nhi u c p,t m th i mình ủ ụ ụ ẽ đượ ề ấ ạ ờ
g i là cha con nhéọ
4. sort_order: v trí s p x p(hi n th ),cái này không quan trong m yị ắ ế ể ị ấ
Và k t qu s c nh hình phía d i.ế ả ẽ đượ ư ướ
B ng danh m c s n ph mả ụ ả ẩ
4.Xây dựng bảng sản phẩm (product)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE IF NOT EXISTS `product` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`catalog_id` int(11) NOT NULL,
`name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`price` decimal(15,4) NOT NULL DEFAULT '0.0000',
`content` text COLLATE utf8_unicode_ci NOT NULL,
`discount` int(11) NOT NULL,
`image_link` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`image_list` text COLLATE utf8_unicode_ci NOT NULL,
`created` int(11) NOT NULL DEFAULT '0',
`view` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
FULLTEXT KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=16 ;
– V i b ng s n ph m này chúng ta c n l u các tr ng thông tin :ớ ả ả ẩ ầ ư ườ
1. id : khóa chính và tr ng d li u này mình t t ngườ ữ ệ để ự ă
2. catalog_id: id c a danh m c s n ph m,vì 1 s n ph m ph i thu c 1 danh m c nào óủ ụ ả ẩ ả ẩ ả ộ ụ đ
3. name: tên s n ph mả ẩ
4. price: giá c a s n ph mủ ả ẩ
5. discount: l u chi t kh u, gi m giáư ế ấ ả
6. price: giá c a s n ph mủ ả ẩ
7. image_link: l u link file nh minh h a cho s n ph mư ả ọ ả ẩ
8. image_list: l u danh sách link file nh kèm theo cho s n ph mư ả ả ẩ
9. created: th i i m t o s n ph mờ để ạ ả ẩ
10. view: l t xem s n ph m nàyượ ả ẩ
….Ngoài ra còn r t nhi u các tr ng d li u ho c các b ng khác liên quan t i vi c l u thông tin s nấ ề ườ ữ ệ ặ ả ớ ệ ư ả
ph m nh ,quà t ng,khuy n mãi,thu c tính…Nh ng ph n này các b n có th phát tri n thêmẩ ư ặ ế ộ ữ ầ ạ ể ể
Và k t qu s c nh hình phía d i.ế ả ẽ đượ ư ướ
Xây d ng b ng l u thông tin s n ph mự ả ư ả ẩ
5.Xây dựng bảng giao dịch (transaction)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TABLE IF NOT EXISTS `transaction` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`status` tinyint(4) NOT NULL DEFAULT '0',
`user_id` int(11) NOT NULL DEFAULT '0',
`user_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`user_email` varchar(50) COLLATE utf8_bin NOT NULL,
`user_phone` varchar(20) COLLATE utf8_bin NOT NULL,
`amount` decimal(15,4) NOT NULL DEFAULT '0.0000',
`payment` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`payment_info` text COLLATE utf8_bin NOT NULL,
`message` varchar(255) COLLATE utf8_bin NOT NULL,
`security` varchar(16) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`created` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=7 ;
– ây là b ng r t quan tr ng và không th thi u trong 1 website th ng m i i n t thanh toán tr c Đ ả ấ ọ ể ế ươ ạ đệ ử ự
tuy n,b ng này có ch c n ng l u thông tin c a toàn b giao d ch trên website. V i b ng giao d ch ế ả ứ ă ư ủ ộ ị ớ ả ị
này chúng ta c n l u các tr ng thông tin :ầ ư ườ
1. id : khóa chính và tr ng d li u này mình t t ngườ ữ ệ để ự ă
2. status: l u tr ng thái c a giao d ch,d a vào tr ng thái này bi t giao d ch ã thanh toán ư ạ ủ ị ự ạ để ế ị đ
thành công ch a,ví d 1 là thành công,0 là ch a thanh toánư ụ ư
3. user_id: id c a thành viên mua hàng,n u khách không có tài kho n thì tr ng này không ủ ế ả ươ
c n l uầ ư
4. user_name: tên c a khách hàngủ
5. user_email: email c a khách hàngủ
6. user_phone: s i n tho i c a khách hàngố đệ ạ ủ
7. amount: t ng s ti n c n thanh toán,và ây chính là t ng s ti n chúng ta g i sang bên c ng ổ ố ề ầ đ ổ ố ề ử ổ
thanh toán
8. payment: tên c ng thanh toán mà khách hàng ch n thanh toánổ ọ để
9. payment_info: toàn b thông tr v t bên c ng thanh toán g i cho chúng taộ ả ề ừ ổ ủ
10. message: n i dung yêu c u c a khách hàngộ ầ ủ
11. security: mã b o m t cho giao d ch,1 s c ng thanh toán ta c n g i mã b o m tả ậ ị ố ổ ầ ử ả ậ
12. created: th i i m t o giao d ch,d a vào tr ng này mà chúng ta hoàn toàn có th làm ờ để ạ ị ự ườ ể
th ng kê cáo cáo doanh thu theo th i gianố ờ
Khi sang ch c n ng mua hàng và thanh toán tr c tuy n ho c th ng kê báo cáo chúng ta s ph i ứ ă ự ế ặ ố ẽ ả
làm vi c nhi u v i b ng này.ệ ề ớ ả
Và k t qu chúng ta s có b ng d li u sau:ế ả ẽ ẳ ữ ệ
B ng l u thông tin giao d ch c a websiteả ư ị ủ
6.Xây dựng bảng đơn hàng (order)
1
2
3
4
5
6
7
8
9
10
CREATE TABLE IF NOT EXISTS `order` (
`transaction_id` int(255) NOT NULL,
`id` int(255) NOT NULL AUTO_INCREMENT,
`product_id` int(255) NOT NULL,
`qty` int(11) NOT NULL DEFAULT '0',
`amount` decimal(15,4) NOT NULL DEFAULT '0.0000',
`data` text COLLATE utf8_bin NOT NULL,
`status` tinyint(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=6 ;
– trên chúng ta ã có b ng giao d ch r i v y còn b ng n hàng ây làm gì nh ? ây chính là Ở đ ả ị ồ ậ ả đơ ở đ để ỉ đ
b ng l u chi ti t c a giao d ch,1 giao d ch có th có nhi u n hàng,ví d trong gi hàng c a b n ả ư ế ủ ị ị ể ề đơ ụ ỏ ủ ạ
mua 2 lo i s n ph m là 1 cái tivi và 2 cái i n tho i,lúc này trong b ng giao d ch ch có 1 dòng d ạ ả ẩ đệ ạ ả ị ỉ ữ
li u duy nh t,nh ng trong b ng n hàng này s có thêm 2 ong d li u.Và chi ti t các thông tin ệ ấ ư ả đơ ẽ đ ữ ệ ế
trong b ng này c n l u nh sau:ả ầ ư ư
1. id : khóa chính và tr ng d li u này mình t t ngườ ữ ệ để ự ă
2. transaction_id: id c a giao d ch,1 giao d ch có th có nhi u n hàng và 1 n hàng ph i ủ ị ị ể ề đơ đơ ả
thu c 1 giao d ch nào ó.ộ ị đ
3. product_id: id c a s n ph mủ ả ẩ
4. qty: s l ng s n ph m trong n hàng,nh ví d trên thì v i tivi thì qty = 1,và i n tho i thìố ượ ả ẩ đơ ư ụ ớ đệ ạ
qty = 2
5. amount: s ti n c a n hàng,các b n l u ý là s ti n(amount) trong b ng giao d ch s b ng ố ề ủ đơ ạ ư ố ề ả ị ẽ ằ
t ng s ti n trong b ng n hàng t ng ng nhéổ ố ề ả đơ ươ ứ
6. data: l u d li u nào ó mà b n mu nư ữ ệ đ ạ ố
7. status: ây chính là tr ng thái c a n hàng,và tr ng thái này cho chúng ta bi t s n ph m đ ạ ủ đơ ạ ế ả ẩ
c a n hàng này ã c g i cho khách ch a,ví dủ đơ đ đượ ử ư ụ status = 1 là ã g i,đ ử status = 0 là ch a g i ư ử
hàng cho khách
….Các b n c n phân bi t chính xácạ ầ ệ amount và status trong b ngả transaction và amount và
status trong b ngả order nhé.
Và k t qu s c nh hình phía d i.ế ả ẽ đượ ư ướ
B ng l u thông tin n hàngả ư đơ
- See more at: o/huong-dan-tao-co-du-lieu-cho-web-ban-
hang/#sthash.1IBTRpwJ.dpuf