Skip to content

[Feature] 建议增加交易「成员」维度,用于记录收入/支出的实际归属人 #462

Description

@sunxiang0918

前置检查

遇到的问题 / 使用场景

BeeCount 目前已经支持共享账本、多用户协作,也能够记录交易的创建人/修改人,这对于家庭共同记账非常有价值。

但在家庭记账场景中,还有一个与「谁录入了这笔交易」完全不同的维度:

这笔支出实际是为谁产生的,或者这笔收入实际属于谁。

例如一个家庭账本中可能有以下成员:

  • 自己
  • 妻子
  • 孩子
  • 家庭公共

目前可以通过标签等方式变通记录,但我认为「成员」本身是家庭财务中比较核心且稳定的业务维度,比较适合作为交易的独立字段。


典型场景

例如:

场景 1:家庭公共支出

金额:46.80
分类:居家物业 > 超市购物
账户:妻子-平安信用卡
成员:家庭
备注:  购买盒马的榴莲

这里:

  • 付款账户属于妻子
  • 可能是丈夫录入的
  • 但这笔钱属于家庭公共消费

因此:

账户所有人 ≠ 交易成员 ≠ 录入人

它们实际上是三个不同的维度。


场景 2:为孩子购买物品

金额:399
分类:服饰 > 鞋
账户:我的支付宝
成员:孩子
备注:  购买耐克的鞋

虽然钱是从我的账户支出的,也可能由我录入,但如果以后想统计:

今年一共为孩子支出了多少钱?

就需要一个明确的「成员」维度。


场景 3:家庭成员收入

成员维度对于收入同样有意义:

收入:20,000
分类:工资
账户:招商银行
成员:自己
备注:  8月份工资

另一笔:

收入:15,000
分类:工资
账户:平安银行
成员:妻子
备注:  8月份工资

这样以后可以很自然地统计:

家庭总收入
├── 自己收入
├── 妻子收入
└── 其他收入

为什么不建议仅使用标签实现?

从功能上讲,标签确实可以模拟:

#成员-自己
#成员-妻子
#成员-孩子
#成员-家庭

但「成员」和普通标签的语义并不完全相同。

标签通常是:

  • 多选
  • 临时性
  • 自由组合
  • 用于辅助分类和筛选

而成员通常是:

  • 一个账本内固定的一组对象
  • 每笔交易通常只归属于一个成员
  • 是长期稳定的统计维度
  • 支出和收入都需要按成员聚合
  • 很多家庭账本都会持续使用多年

如果用标签模拟,还可能出现:

一笔交易同时选择:
#成员-自己
#成员-妻子

此时统计语义就变得不明确。

所以从数据模型上看,我认为它更类似于:

账户
分类
成员
项目

这种明确的交易维度,而不是普通 Tag。

目前 随手记 等 在多人记账中 是 支持 '成员维度'的.

期望的解决方案


建议的功能设计

希望可以在每个账本中维护成员,例如:

成员
├── 自己
├── 妻子
├── 孩子
└── 家庭

交易新增一个可选字段:

成员:家庭

建议:

  1. 成员由账本维度统一维护;
  2. 每笔收入/支出可以选择一个成员;
  3. 字段可为空,避免影响不需要该功能的用户;
  4. 可以设置默认成员;
  5. 支持按成员筛选交易;
  6. 报表支持按成员统计收入、支出;
  7. 导入/导出时保留成员字段;
  8. 共享账本中所有成员看到相同的成员列表。

报表上的价值

增加成员维度后,可以直接得到很多非常实用的家庭统计:

2026 年家庭支出

家庭公共     ¥80,000
自己         ¥35,000
妻子         ¥28,000
孩子         ¥42,000

或者:

孩子年度支出

教育        ¥18,000
服饰         ¥5,000
医疗         ¥3,000
娱乐         ¥4,000

还可以结合现有分类:

成员 × 分类

形成更有价值的家庭财务分析。

对于多人共享账本来说,我认为这是一个比较自然的后续能力。

我认为它对于:

  • 家庭共享账本
  • 夫妻共同记账
  • 子女支出统计
  • 家庭成员收入统计
  • 长期家庭财务分析

都会有比较明显的价值。

同时该字段可以设计为完全可选,因此对现有单人记账用户不会造成额外负担。

替代方案(非必填)

No response

参考示例(非必填)

No response

优先级

很重要

贡献意愿(可多选)

  • 我愿意提交 PR 实现此功能(先跟 maintainer 对齐方案再动手)
  • 我可以帮助测试
  • 我可以提供更详细的需求说明

其他补充(非必填)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions