简单的商城系统的数据库设计

简单的商城系统的数据库设计

本文会详细介绍一下,简单商城系统的数据库的表的创建。
本文使用的数据库是MySQL8.0.x。
数据库可视化软件使用的是jetbrains datgrip。

概述

下面这两行sql的意义:
当新增一行数据时,那么那行中的create_at update_at 会自动填充时间,且是新增这行数据的时间。
当修改这行数据时,那么update_at 中保存的时间也会实现相应的修改,且是自动修改。

create_at datetime default current_timestamp comment '创建时间',
update_at datetime default current_timestamp on update current_timestamp comment '修改时间'

用户相关

账号表

create table account(
    id int8 auto_increment primary key comment '主键',
    username varchar(10) not null unique comment '账号',
    `password` varchar(150) not null comment '密码',
    nickname varchar(10) default null comment '昵称',
    role_type varchar(1) default '0' comment '0 - 普通用户 1 - 管理员 2 - 超级管理员',
    create_at datetime default current_timestamp comment '创建时间',
    update_at datetime default current_timestamp on update current_timestamp comment '修改时间'
)comment '账号表';

用户信息表

create table userinfo(
    id int8 auto_increment primary key comment '主键',
    uid int8 not null comment '账号主键',
    id_num varchar(18) comment '身份证号',
    real_name varchar(10) comment '身份证姓名',
    create_at datetime default current_timestamp comment '创建时间',
    update_at datetime default current_timestamp on update current_timestamp comment '修改时间'
)comment '用户信息表';

购物车表

create table cart(
    id int8 auto_increment primary key comment '主键',
    uid int8 not null comment '账号主键',
    `count` int comment '购物车中有几种类型的商品',
    create_at datetime default current_timestamp comment '创建时间',
    update_at datetime default current_timestamp on update current_timestamp comment '修改时间'
)comment '购物车表';

收件地址表

create table address(
    id int8 auto_increment primary key comment '主键',
    uid int8 not null comment '账号主键',
    country varchar(30) default '中国' comment '国家',
    province varchar(30) default '北京市' comment '省份/州',
    city varchar(30) default '北京市' comment '市',
    district varchar(30) default '东城区' comment '区/县',
    detail varchar(150) not null comment '详细地址',
    is_default varchar(1) default '0' comment '0 - 非默认收件地址 1 - 默认收件地址',
    create_at datetime default current_timestamp comment '创建时间',
    update_at datetime default current_timestamp on update current_timestamp comment '修改时间'
)comment '收件地址表';

商品相关

商品这块,简单设计一下,比较复杂的结构,感觉不是很容易实现。
比如:每个商品,用户可以自定义商品的颜色,尺码,款式等信息。
这里就不实现这种情况,商品的图片的话,也是采用比较简单的实现方式。
图片的存储是存储图片的地址(能直接通过 url 访问到的那种)。
mySQL 对表中的列的长度以及行的长度都要限制,不知道如果直接存二进制数据会不会达到表的限制,所以直接存地址。

商品表

create table goods(
    id int8 auto_increment primary key comment '主键',
    category_id int8 not null comment '分类id',
    `name` varchar(30) not null comment '商品名',
    info varchar(300) comment '描述',
    old_price decimal(10,2) default 0.01 comment '原价',
    price decimal(10,2) default 0.01 comment '现价',
    show_img varchar(500) comment '展示轮播图',
    desc_img varchar(1500) comment '详情图',
    color varchar(100) comment '商品颜色',
    type varchar(100) comment '商品款式',
    stock varchar(10) comment '商品库存',
    create_at datetime default current_timestamp comment '创建时间',
    update_at datetime default current_timestamp on update current_timestamp comment '修改时间'
)comment '商品表';

分类表

create table category(
    id int8 auto_increment primary key comment '主键',
    parent_id int8 not null comment '父id',
    `name` varchar(30) not null comment '商品名',
    create_at datetime default current_timestamp comment '创建时间',
    update_at datetime default current_timestamp on update current_timestamp comment '修改时间'
)comment '分类表';

后面还会更新

后续还会优化

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
设计一个简单的网上商城系统数据库时,我们需要考虑的关键组件包括用户管理、商品信息、订单处理、支付记录、库存管理以及物流跟踪等。以下是一些主要表的概述和它们之间的关系: 1. **用户表(Users)**: - 用户ID (UserID) - 用户名 (Username) - 密码哈希 (PasswordHash) - 电子邮件 (Email) - 地址 (Address) - 个人信息 (PersonalInfo) 2. **商品表(Products)**: - 商品ID (ProductID) - 商品名称 (ProductName) - 库存量 (StockQuantity) 3. **分类表(Categories)**: - 分类ID (CategoryID) - 分类名称 (CategoryName) - 父分类ID (ParentCategoryID, 可选外键) 4. **订单表(Orders)**: - 订单ID (OrderID) - 用户ID (UserID) - 下单日期 (OrderDate) - 总金额 (TotalAmount) 5. **订单详情表(OrderDetails)**: - ID (ID) - 订单ID (OrderID, 外键) - 商品ID (ProductID, 外键) - 单价 (UnitPrice) - 数量 (Quantity) 6. **支付记录表(Payments)**: - 支付ID (PaymentID) - 订单ID (OrderID, 外键) - 交易状态 (TransactionStatus) - 交易时间 (TransactionTime) 7. **配送地址表(DeliveryAddresses)**: - 地址ID (AddressID) - 用户ID (UserID, 外键) - 收货人姓名 (RecipientName) - 地址 (Address) - 邮编 (PostalCode) 8. **物流信息表(ShippingLogs)**: - 物流ID (ShippingID) - 订单ID (OrderID, 外键) - 更新日期 (UpdateDate) - 运输状态 (TrackingStatus) 相关问题: 1. 商城数据库如何确保用户信息安全? 2. 如何设计表之间的关联来支持购物车功能? 3. 如何利用索引来优化查询,特别是在商品搜索和订单处理方面?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值