多个类似表的标准化

时间:2018-05-01 20:32:43

标签: sql database postgresql

我对所有这些技术人员都很陌生,所以请原谅我犯错误 - 事先。

我的问题是关于数据规范化。我正在使用PGadmin4完成此任务。

我每年都有一个包含多列的多个表。我希望将这些数据标准化,以便进一步查询。数据采用以下形式:

Table 1 
| id | name1 | code1| code2 | year|
| 1  | Peter | 111  | 222   | 2007|

Table 2
| id | name1 | code1| code2 | year|
| 2  | Peter | 111  | 223   | 2008|

所以我的表区域相似但每年都有一些不同的数据

我已将其分解,因此我有多个表只包含一列信息:

name1_table
| id | name1 |

我已经完成了每一栏。现在我需要将它们连接在一起 - 我正朝着正确的方向前进,还是让我陷入了困境?

下一步是什么,如果可能,我需要使用的代码是什么。

2 个答案:

答案 0 :(得分:1)

将两个表与相同模式组合在一起的最简单方法是创建一个具有相同模式的新第三个表,并将所有记录复制到其中。

这样的事情:

SELECT * FROM Table1
UNION
SELECT * FROM Table2;

或者,如果您只需要一个组合查询结果,则可以使用UNION:

@Column(name="ID")
private String id;

答案 1 :(得分:0)

朝着正确的方向前进。最好的方法是将所有数据存储在一个表中,并使用索引和/或分区来访问特定的行。

有时候这是不可能的,特别是因为表格有不同的格式。可能的解决方案:

  • 根据列将现有表拆分为相似性集,并为每个相似性集创建一个表。
  • 根据表格的最新定义创建表格,NULL列出历史表格中不存在的列。
  • 对于随时间变化的列,请使用JSON等工具。
  • 为随时间变化的列使用继承等工具。