Thiết kế Database cho sản phẩm theo combo
Chào mọi người ạ, tụi em đang làm 1 trang web nền tảng bán hàng bằng Spring boot + React, SQL Server ạ. Hiện tại tụi em đang muốn làm sản phẩm theo combo nhưng đang không biết nên thiêt kế database sao cho hợp lí ạ. Dưới đây là hình ảnh DB bảng Product của tụi em. Mọi người có thể chia sẻ kinh nghiệm và cách thiết kế cơ sở dữ liệu cho tính năng sản phẩm combo không ạ? Chúng em rất cảm ơn mọi ý kiến đóng góp của mọi người ạ."
3 CÂU TRẢ LỜI
- Combo cũng là một product.
- Nên tách Price ra khỏi product. Nó là phần quản lý giá riêng. Để thế khi có biến động giá, việc process order có thể bị sai, giá ở quá khứ khác giá hiện tại -> lên đơn sai, và cũng ko có lịch sử giá để truy vết. Để giá ở đây có thể được (với ý nghĩa là giá gốc), nhưng thường giá hiển thị không phải giá này.
- Nên tách quantity ra khỏi product. Nó là phần quản lý tồn kho riêng. (Như thiết kế ở trên, chỉ có tồn kho cho product nói chung mà không có tồn kho cho product theo size).
- Các thông tin như Size, Color là thuộc về Product Variant. Các hệ thống ecommerce đều có phần quản lý Variant và bán thực tế là Product Variant chứ không phải Product. Vậy quan hệ Product - Size là n-n
- Product - Category là quan hệ n-n
- Store - Product là quan hệ n-n
Chung quy lại thì cũng quay về bài toán variant thôi
Vẫn sử dụng bảng product nhưng thêm type combo cho product này. trong sp combo có nhiều sản phẩm khác thì tạo ra 1 bảng riêng chứa id của sản phẩm combo + các product khác.
Nó giống như bạn làm việc giữ Order - Orderdeatail - Product .
Bạn có thể tạo ra một bảng Combo - combodetail - Product.
Khi truy cập vào sẽ có dánh sách combo , khi click vào danh sách combo thì sẽ lấy combodetail ( bao gồm id combo, id product) ta sẽ xem được những sản phẩm gì có trong một combo .