我已经安装了PostgreSQL15,目前我没有使用其他第一方/第三方插件或工具.
这里有一个简单的例子,说明了我想要实现的目标.
我有一个表"Category",填充如下:
id(PK) | Description |
---|---|
C1 | Category 1 |
C2 | Category 2 |
C3 | Category 3 |
C4 | Category 4 |
我需要填充一个新的表"Product Count",其中每个类别都绑定到给定年份的销售产品计数.不幸的是,对于某些类别,我只有这些类别的总和.
数据排列在如下所示的Excel文件中:
year | category | count |
---|---|---|
2020 | C1 | 150 |
2020 | C2, C3 | 100 |
2020 | C4 | 400 |
2021 | C1 | 200 |
2021 | C2, C3, C4 | 350 |
我需要的是一种方便地将这些数据存储在主键为(Year,ategory_id(S))的表中的方法.但我并不确切知道如何设计解决方案.
实际问题是,因为计数值是聚合的,所以我需要聚合类别,我希望成为我的主键的一部分.
到目前为止,我的 idea 是有一个中间表(可以称为"Category Group")来考虑类别聚合:
group_id | category_id |
---|---|
G1 | C1 |
G2 | C2 |
G2 | C3 |
G3 | C4 |
G4 | C2 |
G4 | C3 |
G4 | C4 |
这样,产品计数表就可以利用类别组来解决这个问题. 但在我看来,这似乎有点混乱,而且我失go 了类别和产品数量之间的直接联系.
有没有更聪明的方法来设计它?你能帮帮我吗? 非常感谢!