Skip to content

数据表设计说明

本文说明 各数据库表的用途与功能边界,与 backend/zenstack/schema.zmodel(ZenStack 模型)一致。字段级定义以 模型源码与 @meta 注释 为准。


文档维护约定(必读)

何时更新做什么
schema.zmodel新增 / 删除 / 重命名模型或 @@map在本页对应小节增补或调整说明,并检查「表名 ↔ 模型名」对照。
变更表的 业务含义(例如隔离维度从 openid 改为用户 id)修改本页文字描述,避免与真实行为不一致。
仅改字段、索引、策略而与「表做什么」无关可不改本页;若对外承诺的行为变化,仍建议补一句。

权威来源backend/zenstack/schema.zmodel。修改模型后执行 pnpm run zen:generate(及你们约定的库迁移),再视需要更新本文。


通用约定

  • 多数业务模型使用抽象类型 Baseidcreated_time / created_idupdated_time / updated_iddeleted_time(软删)。具体见模型定义。
  • 记账域(Acc) 业务数据普遍带 site_id,指向 sys_tenant_sites,与 JWT / 网关中的站点范围一致。
  • 小程序个人记账mini_book_*)按 系统用户 user_idsys_users.id)隔离;微信 OpenID 仅用于账号创建/绑定,见认证与用户模块。

一、系统域(Sys)

物理表模型用途与功能
sys_usersSysUser登录主体:账号、可选手机/邮箱/身份证、密码、部门、状态、mp_openid(小程序)等。
sys_org_unitsOrgUnit组织架构(部门树),与用户 dept_id 等关联。
sys_tenant_sitesTenantSite多站点主数据:可 parent_id 嵌套(集团/区域/门店);记账域业务按 site_id 归属;成员关系见 sys_site_memberships
sys_site_membershipsSiteMembership用户与站点多对多、数据范围锚点;鉴权时可展开含 子孙站点(见后端 site-scope-expand)。
sys_rolesRole角色定义(编码、名称、状态)。
sys_permissionsPermission权限树:目录/菜单/按钮、route/component、PC/移动端等。
sys_role_assignmentsRoleAssignment用户与角色的绑定。
sys_role_permission_linksRolePermissionLink角色与权限的多对多。
sys_system_configsSysSystemConfig键值型系统参数(分组、键、值、备注)。
sys_dict_types / sys_dict_itemsDictType / DictItem数据字典类型与枚举项。
sys_operation_logsSysOperationLog操作审计(无 Base 的专用结构,以模型为准)。
sys_login_logsSysLoginLog登录审计。
sys_exception_logsSysExceptionLog异常/错误记录。

与系统域相关的跨域表

(无;历史 acc_work_tasks 已废弃,见下方说明。)

已废弃表

物理表说明
acc_work_tasks已自 schema 移除(2026-05)。从未上线业务 API;PC 菜单 menu_acc_tasks 已由种子脚本软删。若库中仍有该表,可在迁移后 DROP TABLE acc_work_tasks(先确认无业务数据)。

二、记账域(Acc)

2.1 主数据

物理表模型用途与功能
acc_job_typesJobType工种;可关联成品、站点内排序与编码。
acc_billing_policiesBillingPolicy计费/计价策略(站点维度,具体字段见模型)。
acc_goodsAccGoods商品档案:原料/成品等类型、站点隔离。
acc_goods_bom_itemsAccGoodsBomItem成品单位产量下的原料配方(BOM)。
acc_goods_process_stepsAccGoodsProcessStep成品关联的工序定义(与报工 step_code 等配合)。
acc_suppliers / acc_customersAccSupplier / AccCustomer供应商、客户档案(站点)。
acc_workersAccWorker工人档案:关联系统用户、工号、状态等(站点)。
acc_worker_job_typesAccWorkerJobType工人与工种多对多(站点)。

2.2 入库 / 生产 / 出库 / 库存

物理表模型用途与功能
acc_inbound_orders / acc_inbound_linesAccInboundOrder / AccInboundLine采购/入库单与明细;驱动库存增加等。
acc_productionsAccProduction生产单主表:一次过账或在制(WIP)等模式,见系统设计文档生产章节。
acc_production_materialsAccProductionMaterial生产投料行。
acc_production_outputsAccProductionOutput生产产出批次行(数量、成本、已出库数量等)。
acc_work_operation_reportsAccWorkOperationReport工序报工子表(WIP 模式)。
acc_labor_recordsAccLaborRecord记工结果:与生产、工种、结算状态关联;可被结算单汇总。
acc_outbound_orders / acc_outbound_linesAccOutboundOrder / AccOutboundLine销售出库及明细;与产出行、库存结转相关。
acc_outbound_returns / acc_outbound_return_linesAccOutboundReturn / AccOutboundReturnLine销售部分退货;良品回库(outbound_return)、次品报废类流水(outbound_return_scrap)。
acc_goods.pack_rules_jsonAccGoods.packRulesJson包装换算 JSON(如 1袋=1000主单位);入库优先用首条。
acc_inbound_lines.scrap_qtyAccInboundLine.scrapQty入库次品数量(不入库存);合格为 qty
acc_stock_ledgersAccStockLedger库存流水台账:按业务事件记录数量增减与关联单据。

2.3 结算

物理表模型用途与功能
acc_settlementsAccSettlement工资/劳务结算单主表:汇总记工、状态、支付凭证等。
acc_settlement_adjustsAccSettlementAdjust结算单上的调整项。

三、小程序个人记账(Sys 服务接口,表名 mini_book_*

物理表模型用途与功能
mini_book_ledgersMiniBookLedger个人账本;数据按 user_idsys_users.id 隔离。
mini_book_entriesMiniBookEntry账本下的收支流水;同属上述用户隔离。
mini_book_budgetsMiniBookBudget账本月度支出预算(分);category 空串=总预算,非空=分类预算;user_id + ledger_id + period_ym + category 唯一。
mini_book_recurringMiniBookRecurring周期记账规则(interval monthly|weekly;day_of_monthday_of_week);apply-due 生成流水。
mini_config_quotesMiniConfigQuote清单计价(硬件名称、数量、单价、行备注、合计);按 user_id 隔离。
mini_daily_check_in_typesMiniDailyCheckInType日常打卡类型(名称、图标、颜色、排序、归档);按 user_id 隔离。
mini_daily_check_in_recordsMiniDailyCheckInRecord日常打卡记录(类型、biz_date、发生时间、备注);一日一类可多条。
mini_book_ledger_membersMiniBookLedgerMember账本成员(owner / editor 都能记 / viewer 只看不记)。
mini_book_ledger_invitesMiniBookLedgerInvite账本 6 位邀请码及加入权限。

接口前缀一般为 /sys/bookkeeping/*(需 JWT),详见业务代码与网关路由配置。


四、相关文档与代码入口

  • 模型与访问策略backend/zenstack/schema.zmodel
  • 系统架构与接口约定docs/guide/system-design.md
  • 多服务与端口backend/MICROSERVICES.md(若存在)

TaskFlow 内部文档 Released under the MIT License.