冗余操作人信息

场景

意见处理功能,实际上是加载意见反馈的分页列表,然后补充关联的 意见处理信息、意见反馈人信息、意见处理人信息

问题

1. 意见反馈人注销导致报错或者显示为空

哪怕用户注销这里也理应能够查看记录的

是用了 MyBatis Plus,官方明确不支持对@TableLogic标记的逻辑删除条件临时失效

于是不得不手写 SQL 语句,而且可以预见的,如果意见处理人也存在被删除的可能,那么也会出现同样的问题

2. 试图通过反馈人或者操作人信息条件筛选记录非常麻烦

比如:根据反馈人姓名条件查询对应的记录,整个链路会是这样

  1. 根据反馈人性命条件查询用户得到对应的用户 ID,如果查询结果为空直接返回不再向下执行
  2. 用 用户 ID 条件查询意见反馈
  3. 用意见反馈人 ID 反查并补充用户信息
  4. 用意见处理 ID 查询意见处理内容并补充
  5. 用意见处理人 ID 反差并补充管理员信息

结论

所以我认为不应该这么设计:意见表 + 处理表,一对一,并且不冗余任何操作人信息

如果在两张表中各自冗余了操作人信息,那么上面的两个问题都非常好实现,更低的复杂度也更不容易出错更容易维护

当然代价是操作人信息不实时更新,但是本身内容就是记录性质的,只要没有特殊要求产品不反对就行

本文作者:YaosGHC

本文链接:https://www.cnblogs.com/yaocy/p/18739581

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   YaosGHC  阅读(3)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起