记录一次需求的架构设计

记录一次需求的架构设计

本文主要是记录一次需求的数据库设计,用以后续参考,防止遗忘,水平有限,共同探讨,不足之处欢迎指正

本次需求主要是增加一个名为产品的数据集合,这个产品是在第三方的概念,我们需要在自己的系统里也存在一份对应,所以需要存一份原始数据,一份我们系统里面的产品数据。我们系统中产品支持合并多个产品合并成一个产品,也支持将合并后的产品进行拆分原始产品。我们系统和第三方的产品数据一一对应。

关键字段:

id level product_id pid is_del
1 1 1001 1 0
2 1 1002 4 0
3 1 1003 4 0
4 2 0 4 0
5 1 1004 5 0
6 2 0 6 1

字段含义:

  • id:自增ID
  • level:类型 1 原始产品 2 合并产品
  • product_id:第三方产品表ID
  • pid:父ID (无合并项为自己)
  • is_del:删除状态 0 未删除 1 已删除
1
2
3
4
5
6
# 伪代码
# 查询
select XXX where level = 1 and is_del = 0

# 分组
GROUP BY pid

数据都是原始产品数据聚合而成,所以只需要查询原始产品的数据进行整合就行。

1
2
3
# 伪代码  如上表
insert id = 4
update pid = 4 where id in (2, 3)

新建合并的产品,之后将原始产品的pid更改为该产品的id

1
2
3
# 伪代码  如上表
delete id = 6
update pid = id where id = 5

删除合并后的产品,之后将原始产品的pid更改为自己的id