佬们,有一个偏业务方向的问题请教一下

场景:
1.存在物品表和User表
2.张三 是 物品A 的采购人 - 物品表存了 handle_user_id handle_user_name
3.如果张三离职了/被删除了 (逻辑删除-deleted = 1)

问题 1.物品的详情页面 需要展示采购人 直接显示张三吗? (handleUserName)
问题 2.业务需要统计 谁采购的东西坏的最多 (人名可能重复) 怎么统计张三呢
(使用userId分组我知道) 但是你这个userId对应的name怎么给前端 因为这个user已经被我删除了

页面上显不显示采购人姓名看你们实际需求吧,统计的话用handle_user_id 统计呀,userid才是唯一的

没怎么过大脑哈,看个乐就行
1、显示张三(已离职)如
Image_20250107160252
2、按照handle_user_id分组统计不就好了吗?

User表加照片,相同人名后面加编号,鼠标浮动显示个照片啥的,或者加上部门信息啥的,保证能区分就行,统计的时候用id,离职打标签就行,不要删

统计使用userId分组,但是这个人user已经删除了 最后前端要的数据是userName - 数量 我查到id = 1的物品数量是 100个 但是数据库里面id=1的张三这个人已经标记为deleted(不方便获取id=1的人名传给前端了) 是这个时候放开查询(不加 where deleted = 1) 还是说数据库设计的问题呢

我觉得给个离职的标签好像确实比较合理

你这两个问题得产品定需求吧。现有数据大概率是能满足的。

  • 基于id分组,展示部门-职务-姓名,能避免你说的展示重名的问题
  • 针对离职、被删除,增加单独标签展示
2 个赞

我想到两个方案:

  • 不要用逻辑删除,用状态来标识删除,改造成本有点大
  • 用逻辑删除,删除时,把这个人的常用基本信息(名字等)放到一张删除人员表。相关业务逻辑如果需要已删除的相关信息,来这个表取数据

离职的这样张三,正常这样张三

我觉得既然你统计的时候需要将离职人员统计进去,那么你统计接口用的sql就不必加这个where条件,并且前端显示的统计信息中,标记这个人已经离职就好