我整理一个记账程序的大概的清单,然后把数据交给AI,他自动会帮我整理一份数据库的设计文档,给出的这份文档我觉得70%能够实现我的功能需求,大体的功能字段基本已经有了,剩余的部分需要根据自己项目去整理优化。

具体需要根据你自己平时开发框架和技术去调整一些字段及关联的内容。

如下:

下面是我整理了一份完整的数据库设计方案,涵盖表结构、字段类型、说明以及数据流程图,适用于我描述的记账系统功能点。


一、数据库设计方案(MySQL 风格)

📘 1. 用户表(users)表格

字段名

类型

描述

id

BIGINT PK

用户ID,主键自增

username

VARCHAR(50)

用户名,唯一

email

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. 记账流程(收入/支出)

0


🔄 2. 转账流程

0


🔄 3. 报销流程

0


🔄 4. 债务管理流

0


三、补充说明

  • 索引建议

    对 book_id, account_id, category_id, transaction_at 等字段加索引,提升查询性能。

  • 软删除

    可添加 deleted_at 字段支持软删除。

  • 多币种支持

    建议在 transactions 和 accounts 中增加 exchange_rate 字段,支持实时汇率换算。

  • 权限控制

    book_members 中的 role 字段可用于控制是否允许查看、编辑、删除账单。

 项目概述

07FLY-Bookkeep 记账系统是一套完整的个人财务管理解决方案,包含前端小程序和后端管理系统两大部分。该系统基于uni-app开发前端小程序,采用ThinkPHP框架构建后端服务,实现了账本管理、收支记录、预算跟踪、统计分析等核心功能,支持多平台使用,包括微信小程序和H5网页端。

开源地址:

日常生活记账小程序: 一个功能完善的个人记账应用,支持多平台使用,帮助用户轻松管理个人财务,包含前端小程序和后端管理系统两大部分。该系统基于uni-app开发前端小程序,采用ThinkPHP框架构建后端服务,实现了账本管理、收支记录、预算跟踪、统计分析等核心功能,支持多平台使用,包括微信小程序和H5网页端。https://gitee.com/07fly/bookkeep

有兴趣的朋友可以看看,代码100开源提供!!!!

最后,附上二维码,有兴趣的朋友扫码看看。目前小程序在认证阶段,还不能通过分享和搜索,只能通过二维码分享了。

0

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐