同事提出来的数据设计,咨询下大家

2020-12-25 15:13:43 +08:00
 yannxia

为了脱敏,这里用一个更通用的 CASE 来说明

我们有一个 用户表 和 产品目录表, 他们之间是 M:N 的关系,我认为这个表就 2 ~ 3 个字段,USER_ID 和 CATEGROY_ID 的外键,最多加上一个 CREATE_Time 但是我的同事认为一定加一个 DELETE_TIME,我们要知道他们什么时候解除关系的,并且可以通过这个查询历史(说是运营会分析[我认为是捏造的])。

我认为这个设计不仅没有必要而且很扯淡,

  1. 我们对于用户和产品本身都没有存历史记录,这里记得关系的历史记录更是没啥卵用,糟糕的可能是产品里面还会删除,这里会出现一个破坏性的 KEY
  2. 关联的历史作为操作历史存在一个单独的表中,并且对于 OLTP 系统不适合做分析,找个 OLAP 的系统抓快照岂不是更好?

最终会议不欢而散,大家一般平时怎么处理这个问题。

PS:我认为包括在业务数据里加一个 Deleted 字段都是偷懒的行为,增加一个 Deleted_User 的表,将删除的数据移动一下可能会更合理点。

2476 次点击
所在节点    问与答
22 条回复
yannxia
2020-12-27 12:46:25 +08:00
@wysnylc 写了 6/7 年的代码,几乎没保留过历史的关联关系,血和泪的教训我为什么一次没遇见?
wysnylc
2020-12-28 10:05:43 +08:00
良言难劝该死鬼,慈悲不度自绝人

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/738924

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX