## 4.2 数据库设计 本节将对《thinkphp5鲜花销售管理系统》的数据库设计进行详细介绍,包括数据库的E-R图设计和数据库表设计。 ### 4.2.1 数据库E-R图设计 以下是鲜花销售管理系统的数据库E-R图设计: #### 管理员E-R图 ![管理员E-R图](https://nebuai.oss-cn-hangzhou.aliyuncs.com/uml/1698920235964.png) E-R图展示了管理员实体与其他实体的关系。管理员可以登录系统、查看个人信息、管理用户、管理鲜花分类、管理鲜花信息、管理用户留言、管理特殊服务、管理系统配置、管理订单等。管理员实体与其他实体之间的关系包括: - 注册表:管理员与注册表之间的关系是一对多的关系,一个管理员可以有多个注册信息。 - 鲜花分类表:管理员通过鲜花分类表可以管理不同的鲜花分类。 - 鲜花信息表:管理员通过鲜花信息表可以管理鲜花的详细信息。 - 用户表:管理员可以管理用户的相关信息。 - 用户留言表:管理员可以管理用户的留言信息。 - 特殊服务表:管理员可以管理特殊服务的信息。 - 系统配置表:管理员可以管理系统的相关配置。 - 订单表:管理员可以管理用户的订单信息。 #### 用户E-R图 ![用户E-R图](https://nebuai.oss-cn-hangzhou.aliyuncs.com/uml/1698920225479.png) E-R图展示了用户实体与其他实体的关系。用户可以注册账号、登录系统、查看个人信息、浏览鲜花信息、查看花语公告、管理购物车、联系客服、查看订单、管理地址、管理收藏等。用户实体与其他实体之间的关系包括: - 注册表:用户与注册表之间的关系是一对多的关系,一个用户可以有多个注册信息。 - 鲜花信息表:用户可以浏览鲜花的详细信息。 - 用户留言表:用户可以发表留言并与系统管理员进行沟通。 - 特殊服务表:用户可以选择并申请特殊服务。 - 订单表:用户可以查看和管理自己的订单信息。 - 购物车表:用户可以管理自己的购物车。 - 联系客服表:用户可以通过联系客服表与客服进行沟通。 - 我的地址表:用户可以管理自己的地址信息。 - 我的收藏表:用户可以查看和管理自己的收藏。 #### 鲜花分类E-R图 ![鲜花分类E-R图](https://nebuai.oss-cn-hangzhou.aliyuncs.com/uml/1698920225460.png) E-R图展示了鲜花分类实体与其他实体的关系。鲜花分类实体拥有分类ID和分类名称属性,包含多个下级分类。鲜花分类实体与其他实体之间的关系包括: - 一级分类:鲜花分类与自身的关系是一对多关系,一个鲜花分类可以有多个下级分类。 - 鲜花信息表:鲜花分类与鲜花信息之间的关系是一对多关系,一个鲜花分类可以包含多个鲜花信息。 #### 鲜花信息E-R图 ![鲜花信息E-R图](https://nebuai.oss-cn-hangzhou.aliyuncs.com/uml/1698920232153.png) E-R图展示了鲜花信息实体与其他实体的关系。鲜花信息实体拥有鲜花ID、鲜花名称、鲜花描述、鲜花价格、库存等属性。鲜花信息实体与其他实体之间的关系包括: - 鲜花分类表:鲜花信息与鲜花分类之间的关系是多对一的关系,一个鲜花分类可以包含多个鲜花信息。 - 用户留言表:鲜花信息与用户留言之间的关系是一对多的关系,一个鲜花信息可以有多个用户留言。 - 特殊服务表:鲜花信息与特殊服务之间的关系是多对多的关系,一个鲜花信息可以有多种特殊服务,一个特殊服务也可以应用于多种鲜花信息。 - 订单表:鲜花信息与订单之间的关系是一对多的关系,一个鲜花信息可以被多个订单购买。 #### 用户留言E-R图 ![用户留言E-R图](https://nebuai.oss-cn-hangzhou.aliyuncs.com/uml/1698920226514.png) E-R图展示了用户留言实体与其他实体的关系。用户留言实体拥有留言ID、用户ID、留言内容、留言时间等属性。用户留言实体与其他实体之间的关系包括: - 用户表:用户留言与用户表之间的关系是一对多的关系,一个用户可以有多个留言。 - 鲜花信息表:用户留言与鲜花信息表之间的关系是多对一的关系,一个留言可以针对某个鲜花。 ### 4.2.2 数据库表设计 #### 管理员表(admin) | 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 | |------------|-----------|------|-----------------|------|--------| | id | int | | 管理员ID | 是 | | | username | varchar | 50 | 用户名 | | | | password | varchar | 50 | 密码 | | | | email | varchar | 100 | 邮箱 | | | | avatar | varchar | 100 | 头像 | | | | last_login | datetime | | 最后登录时间 | | | | created_at | datetime | | 创建时间 | | | | updated_at | datetime | | 更新时间 | | | #### 用户表(user) | 字段名称 | 数据类型 | 字段长度 | 字段说明 | 主键 | 默认值 | |-----------------|------------|----------|--------------------------|------|--------| | id | int | | 用户ID | 是 | | | username | varchar | 20 | 用户名 | | | | password | varchar | 32 | 密码 | | | | email | varchar | 50 | 邮箱 | | | | phone | varchar | 15 | 手机号码 | | | | register_time | datetime | | 注册时间 | | | | last_login_time | datetime | | 最后登录时间 | | | | status | int | | 用户状态(0:禁用,1:启用)| | 1 | #### 鲜花分类表(flower_category) | 字段名称 | 数据类型 | 字段长度 | 字段说明 | 主键 | 默认值 | |-----------------|------------|----------|--------------------------|------|--------| | 分类ID | int | | 分类的唯一标识 | 是 | | | 分类名称 | varchar | 50 | 分类的名称 | | | | 父分类ID | int | | 父分类的ID | | | | 创建时间 | datetime | | 分类的创建时间 | |当前时间| #### 鲜花信息表(flower) | 字段名称 | 数据类型 | 字段长度 | 字段说明 | 主键 | 默认值 | |-----------------|------------|----------|--------------------------|------|--------| | id | int | | 鲜花信息ID | 是 | | | 分类ID | int | | 鲜花分类ID | | | | 名称 | varchar | 50 | 鲜花名称 | | | | 描述 | text | | 鲜花描述 | | | | 价格 | decimal | | 鲜花价格 | | | | 库存 | int | | 鲜花库存 | | | | 图片链接 | varchar | 255 | 鲜花图片链接 | | | | 创建时间 | datetime | | 鲜花信息创建时间 | | | | 更新时间 | datetime | | 鲜花信息更新时间 | | | #### 用户留言表(message) | 字段名称 | 数据类型 | 字段长度 | 字段说明 | 主键 | 默认值 | |-----------------|------------|----------|--------------------------|------|--------| | message_id | int(11) | | 留言ID | 是 | | | user_id | int(11) | | 用户ID | | | | content | varchar(255) | | 留言内容 | | | | create_time | datetime | | 创建时间 | | | | is_read | tinyint(1) | | 是否已读(0/1) | | 0 | #### 特殊服务表(special_service) | 字段名称 | 数据类型 | 字段长度 | 字段说明 | 主键 | 默认值 | |-----------------|------------|----------|--------------------------|------|--------| | id | int | | 服务ID | 是 | | | name | varchar | 50 | 服务名称 | | | | price | decimal | 10,2 | 服务价格 | | | | duration | int | | 服务时长 | | | | description | text | | 服务描述 | | | #### 系统表(system_config) | 字段名称 | 数据类型 | 字段长度 | 字段说明 | 主键 | 默认值 | |-----------------|------------|----------|--------------------------|------|--------| | id | int | 11 | 系统ID | 是 | 无 | | name | varchar | 255 | 系统名称 | 否 | 无 | | version | varchar | 50 | 系统版本 | 否 | 无 | | created_at | timestamp | | 创建时间 | 否 | 当前时间 | | updated_at | timestamp | | 更新时间 | 否 | 当前时间 | #### 订单表(order) | 字段名称 | 数据类型 | 字段长度 | 字段说明 | 主键 | 默认值 | |-----------------|------------|----------|--------------------------|------|--------| | 订单ID | int | | 订单的唯一标识 | 是 | | | 用户ID | int | | 下单用户的ID | | | | 商品ID | int | | 购买商品的ID | | | | 数量 | int | | 购买商品的数量 | | 1 | | 总价 | decimal | | 订单总价 | | 0.00 | | 下单时间 | datetime | | 订单下单的时间 | | 当前时间 | | 状态 | varchar | 20 | 订单的状态 | | 待支付 | | 支付方式 | varchar | 20 | 订单的支付方式 | | | | 收货地址 | varchar | 100 | 订单的收货地址 | | | | 联系电话 | varchar | 20 | 收货人的联系电话 | | | | 备注 | varchar | 200 | 订单的备注信息 | | | 这些设计是根据系统需求和关键实体之间的关系进行的,提供了基本的数据存储结构和关系,以支持鲜花销售管理系统的功能实现。 本节对《thinkphp5鲜花销售管理系统》的数据库设计进行了详细介绍,包括数据库的E-R图设计和数据库表设计。通过合理的数据库设计,可以满足系统的数据存储和操作需求,为后续的系统实现提供基础支持。