Dưới đây là một thiết kế cơ sở dữ liệu cho phần đơn 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: Orders (Đơn hàng)
- OrderID (ID Đơn 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
- TotalAmount (Tổng số tiền): Số thực
- OrderDate (Ngày đặt hàng): Ngày
Bảng: OrderItems (Mục trong đơn hàng)
- OrderItemID (ID Mục trong đơn hàng): Khóa chính, số nguyên duy nhất
- OrderID: Khóa ngoại liên kết với bảng Orders
- 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
- Price (Giá): Số thực
- Subtotal (Tổng tiền con): Số thực
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
- 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 "OrderItems" chứa thông tin về từng mục trong đơn hàng, bao gồm thông tin về sản phẩm, phiên bản sản phẩm, số lượng, giá và tổng tiền con.