Dưới đây là một thiết kế cơ sở dữ liệu cho phần giỏ hàng trong thương mại điện tử, với sản phẩm có nhiều thuộc tính và nhiều giá:
Bảng: Users (Người dùng)
- UserID (ID Người dùng): Khóa chính, số nguyên duy nhất
- Username (Tên người dùng): Chuỗi
- Email: Chuỗi
- Password (Mật khẩu): Chuỗi
- CreatedAt (Ngày tạo): Ngày và giờ
- UpdatedAt (Ngày cập nhật): Ngày và giờ
Bảng: Carts (Giỏ hàng)
- CartID (ID Giỏ hàng): Khóa chính, số nguyên duy nhất
- UserID: Khóa ngoại liên kết với bảng Users
- CreatedAt (Ngày tạo): Ngày và giờ
- UpdatedAt (Ngày cập nhật): Ngày và giờ
Bảng: CartItems (Mục trong giỏ hàng)
- CartItemID (ID Mục trong giỏ hàng): Khóa chính, số nguyên duy nhất
- CartID: Khóa ngoại liên kết với bảng Carts
- ProductID (ID Sản phẩm): Khóa ngoại liên kết với bảng Products
- VariantID (ID Phiên bản): Khóa ngoại liên kết với bảng ProductVariants
- Quantity (Số lượng): Số nguyên
- CreatedAt (Ngày tạo): Ngày và giờ
- UpdatedAt (Ngày cập nhật): Ngày và giờ
Bảng: Products (Sản phẩm)
- ProductID (ID Sản phẩm): Khóa chính, số nguyên duy nhất
- Name (Tên sản phẩm): Chuỗi
- Description (Mô tả): Văn bản
- StockQuantity (Số lượng tồn kho): Số nguyên
- CreatedAt (Ngày tạo): Ngày và giờ
- UpdatedAt (Ngày cập nhật): Ngày và giờ
Bảng: ProductVariants (Phiên bản sản phẩm)
- VariantID (ID Phiên bản): Khóa chính, số nguyên duy nhất
- ProductID: Khóa ngoại liên kết với bảng Products
- Name (Tên phiên bản): Chuỗi (ví dụ: Màu sắc, Kích cỡ)
- Value (Giá trị phiên bản): Chuỗi (ví dụ: Đỏ, XL)
Bảng: VariantPrices (Giá theo phiên bản)
- PriceID (ID Giá): Khóa chính, số nguyên duy nhất
- VariantID: Khóa ngoại liên kết với bảng ProductVariants
- Price (Giá): Số thực
- Currency (Đơn vị tiền tệ): Chuỗi (ví dụ: USD, VND)
Trong thiết kế này, bảng "CartItems" sẽ tham chiếu đến bảng "ProductVariants" để xác định phiên bản cụ thể của sản phẩm trong giỏ hàng. Bảng "VariantPrices" lưu thông tin về giá của từng phiên bản sản phẩm dựa trên đơn vị tiền tệ.
Như luôn, thiết kế cơ sở dữ liệu có thể được điều chỉnh để phù hợp với yêu cầu cụ thể của dự án và cách bạn muốn quản lý giỏ hàng và sản phẩm.