- 用户表(User):存储用户信息,包括用户ID、用户名、密码、邮箱、电话等。
- 商品分类表(Category):存储商品分类信息,包括分类ID、分类名称、父级分类ID等。
- 商品品牌表(Brand):存储商品品牌信息,包括品牌ID、品牌名称、品牌Logo等。
- 商品表(Product):存储商品信息,包括商品ID、商品名称、商品描述、价格、库存量、所属分类ID、所属品牌ID等。
- 购物车表(Cart):存储用户购物车信息,包括购物车ID、用户ID、商品ID、数量等。
- 订单主表(Order):存储订单信息,包括订单ID、用户ID、下单时间、总价格、收货地址等。
- 订单明细表(OrderDetail):存储订单明细信息,包括订单明细ID、订单ID、商品ID、单价、数量等。
- 收货地址表(Address):存储用户收货地址信息,包括地址ID、用户ID、收货人姓名、手机号码、省份、城市、区县、详细地址等。
- 支付方式表(Payment):存储支付方式信息,包括支付方式ID、支付方式名称、手续费等。
- 物流方式表(Shipping):存储物流方式信息,包括物流方式ID、物流方式名称、配送费用等。
下面是一些复杂的SQL查询:
- 查询用户的购物车中所有商品的总金额:
SELECT SUM(Product.Price * Cart.Quantity) AS TotalPrice FROM Product INNER JOIN Cart ON Product.ProductID = Cart.ProductID WHERE Cart.UserID = @UserID
- 查询某个分类下的所有商品及其品牌信息:
SELECT Product.*, Brand.* FROM Product INNER JOIN Brand ON Product.BrandID = Brand.BrandID WHERE Product.CategoryID = @CategoryID
- 查询某个用户的订单及其明细信息:
SELECT Order.*, OrderDetail.* FROM Order INNER JOIN OrderDetail ON Order.OrderID = OrderDetail.OrderID WHERE Order.UserID = @UserID
- 查询某个用户的收货地址信息以及默认地址:
SELECT Address.*, (CASE WHEN Address.IsDefault = 1 THEN '是' ELSE '否' END) AS IsDefaultAddress FROM Address WHERE Address.UserID = @UserID
- 查询某个用户的历史订单总金额:
SELECT SUM(Order.TotalPrice) AS TotalOrderPrice FROM Order WHERE Order.UserID = @UserID AND Order.Status = '已完成'
本文介绍了构建购物商城所需的数据库表结构,包括用户表、商品分类表、商品品牌表、商品表、购物车表、订单主表、订单明细表、收货地址表、支付方式表和物流方式表。并给出了涉及这些表的复杂SQL查询示例,如计算购物车商品总金额、查询商品分类和品牌信息、获取用户订单详情、查询收货地址及默认地址、以及统计用户历史订单总金额。
732





