Cơ sở dữ liệu web bán hàng

      8
Bài viết này tôi sẽ mô tả quá trình thiết kế cơ sở dữ liệu quan hệ cho 1 shop bán sản phẩm trực tuyến áp dụng công núm dbdiagram.io, cuối cùng sinh mã SQL vào cơ sở dữ liệu MySQL. Cửa hàng b

1. Hãy đối chiếu kỹ trước khi sử dụng công cụ

Thiết kế quan hệ bảng bằng công cụ đôi khi đưa về hưng phấn nào đó cho không ít lập trình viên, nó cũng như hacker mới vào nghề thiết lập ngón tay gõ bên trên terminal vậy. Hãy bình tĩnh, cách thức chỉ là sản phẩm công nghệ yếu, chúng ta hãy cùng nhau phân tích nghiệp vụ bằng lời. Một web site bán sản phẩm trực tuyến có:Bảng product chứa thông tin sản phẩm. Bảng này có một vài cột luôn chắc chắn có nhưng id, name, description, madein, manufacturer. Phần thông tin thuộc tính thành phầm sẽ rất cồn tuỳ vào từng thành phầm cụ thể. Truyền hình có kích cỡ đường chéo cánh tính theo inch, có độ phân giải HD, FullHD, 2K, 4K. Tủ rét mướt thì lại có dung tích tính bởi lít, có hay không có tài năng inverter, điều hoà thì có anh tài diệt khuẩn bởi ion, hoặc lọc không khí bởi màng HEPA....Bảng category nhằm phân loại sản phẩm product. Một số web site dễ dàng chỉ có 1 cấp độ phân loại. Nhưng một số web site có danh mục thành phầm rất lớn, hoàn toàn có thể có đến 3 cấp độ phân loại.Bảng customer lưu tin tức khách hàng. Nếu khối hệ thống có một bảng user nhằm lưu tất cả thông tin người tiêu dùng đăng nhập. Thì bảng customer là 1 trong những subset của user. Tuy thế nếu web site không yêu cầu người tiêu dùng phải tạo thông tin tài khoản mà vẫn mua được mặt hàng thì chúng ta sẽ lưu thông tin người tiêu dùng trực tiếp vào phần đơn hàng order.Bảng orders lưu tin tức hiện tại của solo hàng. Tôi cố tình đặt thương hiệu bảng là orders chứ chưa hẳn là order do trong câu lệnh SQL order là 1 trong key word liên quan đến thu xếp dữ liệu. Đơn mặt hàng bị huỷ thì không được xoá, cơ mà đặt trạng thái huỷ.Bảng lineitem: một đơn hàng có thể có rất nhiều hơn một phương diện hàng.Bảng order_action: ghi lại mọi hành động của khách hàng liên quan lại đến đối chọi hàng: để hàng, sửa đơn hàng (thêm giảm mặt hàng, đổi địa chỉ cửa hàng giao hàng), huỷ đối chọi hàng. Chú ý bảng orders chỉ nên nơi lưu tin tức hiện tại cuối cùng của 1-1 hàng. Nó ship hàng mục đích báo cáo.

Bạn đang xem: Cơ sở dữ liệu web bán hàng

2. Những bài toán thực tiễn cần giải quyết

Nếu bạn muốn phát triển một web site bán hàng cho nhiều nhiều loại mặt hàng, thì các bạn cần đối mặt với nhiều thách thức thì thiết kế:Bài toán 1 (No SQL): làm sao sản phẩm hoàn toàn có thể lưu linh hoạt các thuộc tính thành phầm và tìm kiếm được sản phẩm theo từng thuộc tính.Bài toán 2 (Price History): Một sản phẩm có giá biến đổi theo thời gian. Khách hàng hàng đặt đơn hàng ở thời điểm nào, thì lúc giao dịch phải theo giá khi để hàng. Nếu dịp thanh toán, giá thành phầm tăng, quý khách hàng sẽ vui vị mua được dịp giá rẻ. Tuy vậy khi giá thành phầm có khuyến mại chắc chắn khách hàng sẽ không còn vui, có thể chỉ thanh toán bằng đúng giá lúc này khi sẽ giảm.Bài toán 3 (Race to Order): trong kho, một sản phẩm bán vô cùng chạy chỉ với 1 1-1 vị. Cực kỳ nhiều quý khách hàng cùng thực hiện đặt hàng. Từ khi để hàng, cho đến lúc giao dịch thanh toán thành công có một khoảng thời hạn từ 2 phút (thanh toán trực tuyến) mang đến 2 ngày (chuyển khoản khác ngân hàng vào trong ngày cuối tuần). Lúc quý khách đặt, kho vẫn báo còn hàng. Tuy nhiên khi giao dịch thành công, kho không được hàng, vậy tính sao?Sẽ còn nhiều bài bác toán thách thức nếu chỉ áp dụng CSDL thì không thể xử lý triệt để. Cho nên vì vậy cần an toàn với mô hình xây cất database centric (mô hình hoá mọi nghiệp vụ bằng quan hệ các bảng trong database quan hệ).

3. Xây đắp CSDL bằng dbdiagram.io

Xây dựng áp dụng lớn cần bắt đầu mô hình nhỏ. Trước tiên họ thử nghiệm với mô hình nhỏ dại đủ cho 1 shop bán hàng online cá nhân. Tiếp nối sẽ bổ sung dần các tính năng, không duy nhất thiết phải bởi CSDL, mà cần sử dụng đến các công nghệ khác để tránh tình trạng database centric thiết kế (thiết kế lấy csdl làm trung tâm). Tôi sử dụng dbdiagram.io cụ vì những công nạm kéo thả xây cất khác vì:Kiểm soát kiến thiết bằng code luôn chính xácMiễn phíThiết kế trực tiếp trên trình duyệtXuất ra PDF, PNG, MySQL, Postgresql, MSSQL ServerSản phẩm made in Việt nam. Chất lượng và trải nghiệm rất tốt.

Xem thêm: Cách Làm Mạng Chạy Nhanh Hơn Cho Win 7 "Nhanh Như Chớp", Cách Tăng Tốc Win 7 Nhanh Như Chớp

4. Sản phẩm và các bảng liên quan

Một sản phẩm được cấp dưỡng (made in) ở một nước. Một nước sản xuất những sản phẩm.

Table hàng hóa id int name varchar description varchar madein varchar(2) country.code> price intTable country code varchar(2) name varchar

Một sản phẩm cần giữ lại lịch sử dân tộc giá theo thời gian

Một sản phẩm sẽ tất cả danh sách phiên bản ghi gía dịch chuyển theo thời gian. Ngôi trường product.price phản chiếu giá update lần cuối cùng.Table product_price id int product_id int product.id> price int created_at datetime

Một sản phẩm có rất nhiều ảnh, video, tệp tin hướng dẫn thực hiện PDF

Bảng product_media đã chứa thông tin ảnh, video, file dạng PDF.Table product_media id int product_id int product.id> uri varchar media_type MediaTypeEnum MediaType photo video clip PDF

Một thành phầm do một công ty sản xuất

Cần khác nhau rõ nhà tiếp tế với nhà phân phối. Lấy ví dụ Tivi mi 65 inch do Xiaomi sản xuất. Lúc nhập khẩu về VN, hoàn toàn có thể nhiều rộng một bên nhập khẩu - phân phối. Phía bạn mua, chúng ta chỉ thân thiết hãng sản xuất. Còn với shop, cần thân thương nhà nhập khẩu nhằm đảm báo giá giỏi nhất, có hàng khi nên và chủ yếu sách bảo hành tốt.Nhà sản xuất thành lập và hoạt động và gồm trụ sở chủ yếu ở một nước nhà X. Tuy vậy sản phẩm có thể được chế tạo ở tổ quốc Y != X.Table sản phẩm id int name varchar mô tả tìm kiếm varchar madein varchar(2) country.code> price int manufacturer int manufacturer.id>Table country code varchar(2) name varchar Table manufacturer id int name varchar country varchar(2) country.code>

Phân một số loại sản phẩm

Trên giao diện web site bán hàng, bọn họ thường thấy hạng mục dạng 1 cung cấp hoặc 2, 3 cấp để chia nhỏ tuổi danh mục hơn. Việc xây dựng danh mục rất là quan trọng. Danh mục dễ hiểu, phân loại hợp lý và phải chăng giúp khách hàng tìm kiếm sản phẩm dễ dàng, tốn không nhiều lần di chuyển sâu.Một thành phầm gắn với nhất một phân loạiMột sản phẩm rất có thể nhiều phần loại. Một phân một số loại thì bao hàm nhiều sản phẩm.

Sản phẩm liên quan

Khi khách hàng hàng lựa chọn một sản phẩm A, web sit cần gợi ý sản phẩm B, C, D xuất xắc được mua cùng, hoặc là phương pháp đẩy mặt hàng tốn kho, hoặc khuyến mãi.Bia --> Mực, snack nhắmTivi --> đầu vạc Smart TiviLều --> Bàn, ghế dã ngoại, phòng bếp nấu dã ngoạiBikini --> phao bơi, SUP, kem phòng nắngTable suggest_prodct product_id int product.id> suggest_id int product.id>

Lưu các thuộc tính hễ của bảng Product

1. Sử dụng bảng lưu lại property name và property value

Một sản phẩm sẽ có không ít product_properties tương ứng.Tủ lạnh"dung tích (lít)", integer, "400""inverter", bool, "true""điện áp (vôn)", array, "220"Tivi"kích thước (inches)", integer, "65""USB 2.0", integer, "2""Bluetooth", bool, "true""HDMI", integer, "3""OS", string, "Android""điện áp (vôn)", array, "110", "220"Ô tô"động cơ", string, "diesel""chuyển động", string, "2 cầu""cấp vỏ hộp số", integer, "6"Enum PropertyType 0 1 2 3 4 Table product_properies id int product_id int product.id> key varchar value varchar type PropertyTypeKết trái mã SQL chế tạo bảng làCREATE TABLE `product_properies` ( `id` int PRIMARY KEY AUTO_INCREMENT, `product_id` int, `key` varchar(255) NOT NULL, `value` varchar(255) NOT NULL, `type` ENUM ("0", "1", "2", "3", "4"));

2. Sử dụng dynamics column hoặc JSON column trong MySQL

Kiểu JSON vào MySQLA Practical Guide lớn MySQL JSON Data Type By ExampleDynamic Columns

3. Phối hợp MongoDB với MySQL

Chúng ta hoàn toàn có thể sử dụng MongoDB để lưu thông tin động

Tham khảo

Ví dụ mẫu của dbdiagram.io

Many khổng lồ Many Relationship
hotlive |

Hi88