Thiết kế cơ sở dữ liệu cho website bán hàng

Thiết kế cơ sở dữ liệu cho website bán hàng? Chắc hẳn có rất nhiều người không biết cơ sở dữ liệu cho website bán hàng là gì? Thiết kê như nào là hợp lí nhất.

Thiết kế cơ sở dữ liệu cho website bán hàng

Đối những Codeer mới bắt đầu thì việc hiểu và khởi tạo được CSDL không phải là chuyện đơn giản. Tôi xin chia sẻ cách tạo CSDL cho website bán hàng. Trong bài viết này tôi sẽ chia sẻ cho các bạn. Mong rằng sau khi đọc song bài viết này cac bạn có thể tạo cho 1 website bán hàng 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.

Trước tiên khi làm về cơ sở dữ liệu thì bạn cần biết vài trò quả mình là gì trong website: Quản trị viên,… Ở đây tôi sẽ đưa ra những yếu tố cơ bản cần có khi thiết kế website bán hàng: Quản trị viên, sản phẩm, danh mục sản phẩm…

Ngoài ra còn có rất nhiều những chắc năng quản lí khác nhưng bây giờ việc làm của chúng ta là xây dựng cơ sở dữ liệu:

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

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
8
9
10
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`)
) 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
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

– Kết thúc bài viết: qua bài này mình đã hướng dẫn các bạn làm cơ sở dữ liệu(CSDL) ở mức độ cơ bản nhất đối với website bán hàng.Các bạn có thể phát triển thêm các bảng khác như bảng liên hệ,tin tức…CSDL của bài hướng dẫn các bạn có thể download

Đây là những kiến thức mà chúng tôi muốn chia sẻ với bạn mong rằng nó sẽ giúp ích cho bạn. Nếu còn thắc mắc nào khác hãy cmt phía dưới để có câu trả lời nhanh nhất nhé.

Leave a Reply

Your email address will not be published.


*