Appearance
数据表设计说明
本文说明 各数据库表的用途与功能边界,与 backend/zenstack/schema.zmodel(ZenStack 模型)一致。字段级定义以 模型源码与 @meta 注释 为准。
文档维护约定(必读)
| 何时更新 | 做什么 |
|---|---|
在 schema.zmodel 中 新增 / 删除 / 重命名模型或 @@map 表 | 在本页对应小节增补或调整说明,并检查「表名 ↔ 模型名」对照。 |
| 变更表的 业务含义(例如隔离维度从 openid 改为用户 id) | 修改本页文字描述,避免与真实行为不一致。 |
| 仅改字段、索引、策略而与「表做什么」无关 | 可不改本页;若对外承诺的行为变化,仍建议补一句。 |
权威来源:backend/zenstack/schema.zmodel。修改模型后执行 pnpm run zen:generate(及你们约定的库迁移),再视需要更新本文。
通用约定
- 多数业务模型使用抽象类型
Base:id、created_time/created_id、updated_time/updated_id、deleted_time(软删)。具体见模型定义。 - 记账域(Acc) 业务数据普遍带
site_id,指向sys_tenant_sites,与 JWT / 网关中的站点范围一致。 - 小程序个人记账(
mini_book_*)按 系统用户user_id(sys_users.id)隔离;微信 OpenID 仅用于账号创建/绑定,见认证与用户模块。
一、系统域(Sys)
| 物理表 | 模型 | 用途与功能 |
|---|---|---|
sys_users | SysUser | 登录主体:账号、可选手机/邮箱/身份证、密码、部门、状态、mp_openid(小程序)等。 |
sys_org_units | OrgUnit | 组织架构(部门树),与用户 dept_id 等关联。 |
sys_tenant_sites | TenantSite | 多站点主数据:可 parent_id 嵌套(集团/区域/门店);记账域业务按 site_id 归属;成员关系见 sys_site_memberships。 |
sys_site_memberships | SiteMembership | 用户与站点多对多、数据范围锚点;鉴权时可展开含 子孙站点(见后端 site-scope-expand)。 |
sys_roles | Role | 角色定义(编码、名称、状态)。 |
sys_permissions | Permission | 权限树:目录/菜单/按钮、route/component、PC/移动端等。 |
sys_role_assignments | RoleAssignment | 用户与角色的绑定。 |
sys_role_permission_links | RolePermissionLink | 角色与权限的多对多。 |
sys_system_configs | SysSystemConfig | 键值型系统参数(分组、键、值、备注)。 |
sys_dict_types / sys_dict_items | DictType / DictItem | 数据字典类型与枚举项。 |
sys_operation_logs | SysOperationLog | 操作审计(无 Base 的专用结构,以模型为准)。 |
sys_login_logs | SysLoginLog | 登录审计。 |
sys_exception_logs | SysExceptionLog | 异常/错误记录。 |
与系统域相关的跨域表
(无;历史 acc_work_tasks 已废弃,见下方说明。)
已废弃表
| 物理表 | 说明 |
|---|---|
acc_work_tasks | 已自 schema 移除(2026-05)。从未上线业务 API;PC 菜单 menu_acc_tasks 已由种子脚本软删。若库中仍有该表,可在迁移后 DROP TABLE acc_work_tasks(先确认无业务数据)。 |
二、记账域(Acc)
2.1 主数据
| 物理表 | 模型 | 用途与功能 |
|---|---|---|
acc_job_types | JobType | 工种;可关联成品、站点内排序与编码。 |
acc_billing_policies | BillingPolicy | 计费/计价策略(站点维度,具体字段见模型)。 |
acc_goods | AccGoods | 商品档案:原料/成品等类型、站点隔离。 |
acc_goods_bom_items | AccGoodsBomItem | 成品单位产量下的原料配方(BOM)。 |
acc_goods_process_steps | AccGoodsProcessStep | 成品关联的工序定义(与报工 step_code 等配合)。 |
acc_suppliers / acc_customers | AccSupplier / AccCustomer | 供应商、客户档案(站点)。 |
acc_workers | AccWorker | 工人档案:关联系统用户、工号、状态等(站点)。 |
acc_worker_job_types | AccWorkerJobType | 工人与工种多对多(站点)。 |
2.2 入库 / 生产 / 出库 / 库存
| 物理表 | 模型 | 用途与功能 |
|---|---|---|
acc_inbound_orders / acc_inbound_lines | AccInboundOrder / AccInboundLine | 采购/入库单与明细;驱动库存增加等。 |
acc_productions | AccProduction | 生产单主表:一次过账或在制(WIP)等模式,见系统设计文档生产章节。 |
acc_production_materials | AccProductionMaterial | 生产投料行。 |
acc_production_outputs | AccProductionOutput | 生产产出批次行(数量、成本、已出库数量等)。 |
acc_work_operation_reports | AccWorkOperationReport | 工序报工子表(WIP 模式)。 |
acc_labor_records | AccLaborRecord | 记工结果:与生产、工种、结算状态关联;可被结算单汇总。 |
acc_outbound_orders / acc_outbound_lines | AccOutboundOrder / AccOutboundLine | 销售出库及明细;与产出行、库存结转相关。 |
acc_outbound_returns / acc_outbound_return_lines | AccOutboundReturn / AccOutboundReturnLine | 销售部分退货;良品回库(outbound_return)、次品报废类流水(outbound_return_scrap)。 |
acc_goods.pack_rules_json | AccGoods.packRulesJson | 包装换算 JSON(如 1袋=1000主单位);入库优先用首条。 |
acc_inbound_lines.scrap_qty | AccInboundLine.scrapQty | 入库次品数量(不入库存);合格为 qty。 |
acc_stock_ledgers | AccStockLedger | 库存流水台账:按业务事件记录数量增减与关联单据。 |
2.3 结算
| 物理表 | 模型 | 用途与功能 |
|---|---|---|
acc_settlements | AccSettlement | 工资/劳务结算单主表:汇总记工、状态、支付凭证等。 |
acc_settlement_adjusts | AccSettlementAdjust | 结算单上的调整项。 |
三、小程序个人记账(Sys 服务接口,表名 mini_book_*)
| 物理表 | 模型 | 用途与功能 |
|---|---|---|
mini_book_ledgers | MiniBookLedger | 个人账本;数据按 user_id → sys_users.id 隔离。 |
mini_book_entries | MiniBookEntry | 账本下的收支流水;同属上述用户隔离。 |
mini_book_budgets | MiniBookBudget | 账本月度支出预算(分);category 空串=总预算,非空=分类预算;user_id + ledger_id + period_ym + category 唯一。 |
mini_book_recurring | MiniBookRecurring | 周期记账规则(interval monthly|weekly;day_of_month 或 day_of_week);apply-due 生成流水。 |
mini_config_quotes | MiniConfigQuote | 清单计价(硬件名称、数量、单价、行备注、合计);按 user_id 隔离。 |
mini_daily_check_in_types | MiniDailyCheckInType | 日常打卡类型(名称、图标、颜色、排序、归档);按 user_id 隔离。 |
mini_daily_check_in_records | MiniDailyCheckInRecord | 日常打卡记录(类型、biz_date、发生时间、备注);一日一类可多条。 |
mini_book_ledger_members | MiniBookLedgerMember | 账本成员(owner / editor 都能记 / viewer 只看不记)。 |
mini_book_ledger_invites | MiniBookLedgerInvite | 账本 6 位邀请码及加入权限。 |
接口前缀一般为 /sys/bookkeeping/*(需 JWT),详见业务代码与网关路由配置。
四、相关文档与代码入口
- 模型与访问策略:
backend/zenstack/schema.zmodel - 系统架构与接口约定:
docs/guide/system-design.md - 多服务与端口:
backend/MICROSERVICES.md(若存在)