html:
embed_local_images: false
embed_svg: true
offline: false
toc: true
print_background: false
export_on_save:
html: true
数据库设计过程规划
工具:
MySQL 8 到 PHP 8 数据类型对照表
MySQL 数据类型 |
PHP 数据类型 |
说明 |
TINYINT |
int |
小整数值,范围:-128 到 127 |
SMALLINT |
int |
小整数值,范围:-32768 到 32767 |
MEDIUMINT |
int |
中等大小整数值,范围:-8388608 到 8388607 |
INT |
int |
标准整数值,范围:-2147483648 到 2147483647 |
BIGINT |
int/string |
大整数值,范围:-9223372036854775808 到 9223372036854775807 |
FLOAT |
float |
单精度浮点数 |
DOUBLE |
float |
双精度浮点数 |
DECIMAL |
string |
定点数 |
DATE |
string |
日期值,格式:YYYY-MM-DD |
DATETIME |
string |
日期和时间值,格式:YYYY-MM-DD HH:MM:SS |
TIMESTAMP |
string |
时间戳,格式:YYYY-MM-DD HH:MM:SS |
TIME |
string |
时间值,格式:HH:MM:SS |
YEAR |
int |
年份值,范围:1901 到 2155 |
CHAR |
string |
定长字符串 |
VARCHAR |
string |
变长字符串 |
BINARY |
string |
定长二进制数据 |
VARBINARY |
string |
变长二进制数据 |
TINYBLOB |
string |
不超过 255 个字符的二进制数据 |
BLOB |
string |
不超过 65535 个字符的二进制数据 |
MEDIUMBLOB |
string |
不超过 16777215 个字符的二进制数据 |
LONGBLOB |
string |
不超过 4294967295 个字符的二进制数据 |
TINYTEXT |
string |
短文本字符串,不超过 255 个字符 |
TEXT |
string |
文本字符串,不超过 65535 个字符 |
MEDIUMTEXT |
string |
中等长度文本字符串,不超过 16777215 个字符 |
LONGTEXT |
string |
长文本字符串,不超过 4294967295 个字符 |
ENUM |
string |
枚举类型 |
SET |
string |
集合类型 |
JSON |
array/object |
JSON 格式数据,映射为 PHP 数组或对象 |
BOOL |
bool |
布尔值,通常用 0 和 1 表示 |
GEOMETRY |
string |
几何数据类型 |
POINT |
string |
点类型 |
LINESTRING |
string |
线串类型 |
POLYGON |
string |
多边形类型 |
MULTIPOINT |
string |
多点类型 |
MULTILINESTRING |
string |
多线串类型 |
MULTIPOLYGON |
string |
多多边形类型 |
GEOMETRYCOLLECTION |
string |
几何集合类型 |
参考:
- UI 图
- 程序需求和概要设计文档(含流程图)
- 老数据库
- 购买的代码数据库
字段命名前缀
- 图片:img_
- 状态:status_
- 价格:PRICE_
- 日期: 所有都后缀_time
- 数据库关键词、php 关键词、js 关键词,后缀: _KW
- 外键命名规则: simple 表名_ID
多个单词情况倒序命名
设计步骤规划
业务部门人员全程参与,提出修改意见,参与评审?
- 建立英汉对照字典,用于统一业务名词的中英文命名?
- 导入刘数据库,精简 [x]
- 用 pdmaner 参考 UI 图逆向设计,设计到概念模型、逻辑模型为止,不扩展
- 参考做了一半的程序详细设计文档,进行查漏补缺(验证),不扩展
- 参考购买的代码数据库,进行对比,找出不合理之处,进行优化,做加法
- 分析业务中所有需要记录日志或审计的地方,统一建表
- 用 itbuilder 进行快速将概念模型转换为物理模型,进行优化和扩展、字段翻译、字段精度(类型、长度)等,生成物理模型 DDL 并建库
- 生成数据库文档和数据字典文档
- 评审,交付下一开发环节
设计注意事项
- 表名、字段名必须使用小写字母,禁止使用大写字母
- 表名、字段名必须使用下划线分割单词,禁止使用驼峰命名
- 表名、字段名禁止使用中文
- 表名、字段名禁止使用特殊字符
- 表名、字段名禁止使用保留字
- 表名、字段名禁止使用 mysql 保留字
- 表名、字段名禁止使用 php 保留字
- 遵守数据库设计范式:
- 1NF:字段不可分割
- 2NF:每个非主键字段都依赖于主键
- 3NF:每个非主键字段都不依赖于其他非主键字段
- BCNF:每个决定因素都包含主键
- 4NF:消除多值依赖
- 5NF:消除传递依赖
后续过程
- 程序设计文档,参考数据库进行修改
- 通过 dcat admin 生成基础管理后台 controller、model、service 代码,通过 ai 调优后台界面
- 输入程序设计文档、数据库设计文档,通过 ai 生成接口的逻辑代码,测试代码
- 联调测试,优化代码
- 上线测试
php 后台相关表 todolist
- overtrue/laravel-socialite
- 平台设置存储到.env 配置文件中
- 当新建租户时,将配置文件中的平台设置导入到租户的配置表中
php 后台程序详细设计文档 todolist
- 分帐需要、a、b 表,
UI 修改 todolist
技师端
- 技师端首页
- header
- 去掉“位置”显示
- 接单设置
- 增加“位置”显示
- 个人信息板块
- 增加:待认证状态,以及对应的提示
- 点击“待认证状态”或通过其他形式进入认证页面,补充认证需要的信息提交申请
- 如果是审核过了,但未认证,则显示“去认证”。
- 以审核通过的信息为主,点击个人修改,如果有申请修改的记录正在审核,则提示她,你有一条记录正在审核,下面的信息还是审核过的信息,假如他继续修改通过的信息,则会提示,你有一条审核信息正在审核。
- “个人主页“干掉
- 项目设置
- 设置表单下面,增加“重置默认设置”按钮
- 我的订单板块,去掉。tabbar,抢单和订单列表显示数量角标
- 订单列表
- 抢单内容要与任务列表内容、风格一致
订单
- 字段:订单编号,会员编号,技师编号,项目编号,订单状态,订单类型,订单金额(车费+服务费+打赏金额+余额抵扣金额-优惠金额),支付金额,余额抵扣金额,车费,服务费,打赏金额,优惠金额,订单时间,订单地址,订单经纬度,订单地址编码,订单备注,创建时间,更新时间
订单项目快照
订单服务
- 字段:订单编号,技师编号,订单状态(创建、接单、出发、到达、开始服务、服务结束、撤离),经纬度,地址,图片,创建时间,更新时间
订单分帐
- 字段:订单编号,分润类型(用户一级邀请人、用户二级邀请人、技师、平台、代理、技师邀请人),分润账户类型(用户、技师、平台、代理),分润账户编号,参与分润金额,分润金额,分润比例,分润时间,创建时间,更新时间
钱包
- 字段:账户类型(用户、技师、平台、代理),账户编号,类型(消费、退款、充值、提现、扣除、赠送),类型订单编号(订单编号、退款编号、充值编号、提现编号),钱包余额,冻结金额(充值金额),出入金额,手续费,状态(成功,失败),备注,通过时间,创建时间,更新时间
提现记录
- 字段:提现编号,账户类型(用户、技师、平台、代理),账户编号,提现金额,提现手续费,提现状态,提现时间,创建时间,更新时间
车费需要提点 10%
小费需要提点 50%
服务费平台提点 50% - 40%(根据技师等级)
后台设计 生成 sql cursor 规则配置
Always respond in 中文
生成统计sql时,请按照以下要求生成:
1. 数据库采用的是:mysql8
2. 所有注释请使用块注释
3. 查询的每一个列都不要用AS改名,后面都要有中文块注释
4. 查询关联的每一个表改别名时不要使用数据库关键字,后面都要有中文块注释
5. 用查询因子化语法生成统计sql
6. 生成统计sql时,发现不明确的表、字段,请一个一个的告知我,我一个一个的跟您确认,确认后您重新生成统计sql