开发记账小程序说明(三) 使用AI工具CodeBuddy来实现生成的数据库表及字段
本文提供了一套完整的记账系统数据库设计方案,包含11个核心数据表的结构设计。主要包含用户管理、账本管理、交易记录、转账操作、预算控制等功能模块,详细定义了各表字段类型、说明及关联关系。方案采用MySQL风格,支持多用户协作记账,包含收支分类、账户管理、周期账单、债权债务等功能,并针对查询性能提供了索引建议。设计方案约满足70%的基础需求,其余部分需根据实际开发框架和技术栈进行优化调整,包括权限控制
我整理一个记账程序的大概的清单,然后把数据交给AI,他自动会帮我整理一份数据库的设计文档,给出的这份文档我觉得70%能够实现我的功能需求,大体的功能字段基本已经有了,剩余的部分需要根据自己项目去整理优化。
具体需要根据你自己平时开发框架和技术去调整一些字段及关联的内容。
如下:
下面是我整理了一份完整的数据库设计方案,涵盖表结构、字段类型、说明以及数据流程图,适用于我描述的记账系统功能点。
一、数据库设计方案(MySQL 风格)
📘 1. 用户表(users)表格
|
字段名 |
类型 |
描述 |
|
id |
BIGINT PK |
用户ID,主键自增 |
|
username |
VARCHAR(50) |
用户名,唯一 |
|
|
VARCHAR(100) |
邮箱,唯一 |
|
password_hash |
VARCHAR(255) |
加密后的密码 |
|
avatar_url |
VARCHAR(255) |
头像URL(可选) |
|
created_at |
DATETIME |
注册时间 |
|
updated_at |
DATETIME |
更新时间 |
📘 2. 账本表(books)表格
|
字段名 |
类型 |
描述 |
|
id |
BIGINT PK |
账本ID |
|
name |
VARCHAR(100) |
账本名称 |
|
description |
TEXT |
账本描述 |
|
currency |
VARCHAR(3) |
默认币种(如 CNY) |
|
created_by |
BIGINT FK |
创建人(users.id) |
|
created_at |
DATETIME |
创建时间 |
📘 3. 账本成员表(book_members)表格
|
字段名 |
类型 |
描述 |
|
id |
BIGINT PK |
成员记录ID |
|
book_id |
BIGINT FK |
账本ID |
|
user_id |
BIGINT FK |
用户ID |
|
role |
VARCHAR(20) |
角色:admin / member |
|
joined_at |
DATETIME |
加入时间 |
📘 4. 账户表(accounts)表格
|
字段名 |
类型 |
描述 |
|
id |
BIGINT PK |
账户ID |
|
book_id |
BIGINT FK |
所属账本 |
|
name |
VARCHAR(100) |
账户名称 |
|
type |
VARCHAR(20) |
类型:现金、银行卡、信用卡等 |
|
currency |
VARCHAR(3) |
币种 |
|
balance |
DECIMAL(15,2) |
当前余额 |
|
is_hidden |
BOOLEAN |
是否隐藏(不计入总资产) |
|
created_at |
DATETIME |
创建时间 |
📘 5. 分类表(categories)表格
|
字段名 |
类型 |
描述 |
|
id |
BIGINT PK |
分类ID |
|
book_id |
BIGINT FK |
所属账本 |
|
parent_id |
BIGINT FK |
父分类ID(顶级为NULL) |
|
name |
VARCHAR(100) |
分类名称 |
|
icon |
VARCHAR(100) |
图标(可选) |
|
type |
VARCHAR(10) |
类型:income / expense |
|
sort_order |
INT |
排序 |
📘 6. 交易记录表(transactions)表格
|
字段名 |
类型 |
描述 |
|
id |
BIGINT PK |
交易ID |
|
book_id |
BIGINT FK |
所属账本 |
|
account_id |
BIGINT FK |
关联账户 |
|
category_id |
BIGINT FK |
分类ID |
|
type |
VARCHAR(10) |
类型:income / expense / transfer |
|
amount |
DECIMAL(15,2) |
金额(正为收入,负为支出) |
|
currency |
VARCHAR(3) |
币种 |
|
description |
TEXT |
描述 |
|
transaction_at |
DATETIME |
交易时间 |
|
created_by |
BIGINT FK |
创建人(users.id) |
|
created_at |
DATETIME |
创建时间 |
|
is_refund |
BOOLEAN |
是否为退款 |
|
is_reimbursable |
BOOLEAN |
是否可报销 |
|
receipt_image |
VARCHAR(255) |
小票图片URL(可选) |
📘 7. 转账记录表(transfers)表格
|
字段名 |
类型 |
描述 |
|
id |
BIGINT PK |
转账ID |
|
book_id |
BIGINT FK |
所属账本 |
|
from_account_id |
BIGINT FK |
转出账户 |
|
to_account_id |
BIGINT FK |
转入账户 |
|
amount |
DECIMAL(15,2) |
转账金额 |
|
currency |
VARCHAR(3) |
币种 |
|
fee |
DECIMAL(10,2) |
手续费(可选) |
|
description |
TEXT |
描述 |
|
transferred_at |
DATETIME |
转账时间 |
|
created_at |
DATETIME |
创建时间 |
📘 8. 周期账单表(recurring_bills)表格
|
字段名 |
类型 |
描述 |
|
id |
BIGINT PK |
周期账单ID |
|
book_id |
BIGINT FK |
所属账本 |
|
name |
VARCHAR(100) |
名称(如“房租”) |
|
type |
VARCHAR(10) |
income / expense |
|
amount |
DECIMAL(15,2) |
金额 |
|
category_id |
BIGINT FK |
分类ID |
|
account_id |
BIGINT FK |
关联账户 |
|
frequency |
VARCHAR(20) |
频率:monthly / weekly 等 |
|
start_date |
DATE |
开始日期 |
|
end_date |
DATE |
结束日期(可选) |
|
next_due_date |
DATE |
下次应生成日期 |
|
created_at |
DATETIME |
创建时间 |
📘 9. 债务表(debts)表格
|
字段名 |
类型 |
描述 |
|
id |
BIGINT PK |
债务ID |
|
book_id |
BIGINT FK |
所属账本 |
|
type |
VARCHAR(10) |
类型:lend / borrow |
|
contact_name |
VARCHAR(100) |
对方姓名 |
|
amount |
DECIMAL(15,2) |
总金额 |
|
repaid_amount |
DECIMAL(15,2) |
已还金额 |
|
interest_rate |
DECIMAL(5,2) |
年利率(可选) |
|
due_date |
DATE |
约定还款日 |
|
status |
VARCHAR(20) |
状态:待还 / 部分 / 完成 / 逾期 |
|
created_at |
DATETIME |
创建时间 |
📘 10. 报销记录表(reimbursements)表格
|
字段名 |
类型 |
描述 |
|
id |
BIGINT PK |
报销ID |
|
transaction_id |
BIGINT FK |
关联交易记录 |
|
status |
VARCHAR(20) |
状态:待报销 / 报销中 / 已报销 |
|
reimbursed_at |
DATETIME |
报销完成时间(可选) |
|
amount |
DECIMAL(15,2) |
报销金额 |
|
created_at |
DATETIME |
创建时间 |
📘 11. 预算表(budgets)表格
|
字段名 |
类型 |
描述 |
|
id |
BIGINT PK |
预算ID |
|
book_id |
BIGINT FK |
所属账本 |
|
category_id |
BIGINT FK |
分类ID(NULL为总预算) |
|
amount |
DECIMAL(15,2) |
预算金额 |
|
period_type |
VARCHAR(10) |
周期:month / year |
|
start_date |
DATE |
开始日期 |
|
end_date |
DATE |
结束日期 |
|
created_at |
DATETIME |
创建时间 |
二、数据流程图(文字描述)
🔄 1. 记账流程(收入/支出)

🔄 2. 转账流程

🔄 3. 报销流程

🔄 4. 债务管理流

三、补充说明
- 索引建议
对 book_id, account_id, category_id, transaction_at 等字段加索引,提升查询性能。
- 软删除
可添加 deleted_at 字段支持软删除。
- 多币种支持
建议在 transactions 和 accounts 中增加 exchange_rate 字段,支持实时汇率换算。
- 权限控制
book_members 中的 role 字段可用于控制是否允许查看、编辑、删除账单。
项目概述
07FLY-Bookkeep 记账系统是一套完整的个人财务管理解决方案,包含前端小程序和后端管理系统两大部分。该系统基于uni-app开发前端小程序,采用ThinkPHP框架构建后端服务,实现了账本管理、收支记录、预算跟踪、统计分析等核心功能,支持多平台使用,包括微信小程序和H5网页端。
开源地址:
有兴趣的朋友可以看看,代码100开源提供!!!!
最后,附上二维码,有兴趣的朋友扫码看看。目前小程序在认证阶段,还不能通过分享和搜索,只能通过二维码分享了。

更多推荐



所有评论(0)