SCD(缓慢改变维度)类型4/6-如何在spring引导应用程序hibernate环境中实现



我正在努力解决我应该如何创建"日志";用于我的应用程序,并将它们存储到数据库中。

假设我有这样的数据库结构:

第一张表:

weatherstation_id | weatherstation_name | weatherstation_ip_address

第二张表:

sensor_id | sensor_name | sensor_number | weatherstation_id

第三张表:

measurement_id | value | measure_date | weatherstation_id | sensor_id

从中我应该能够得到";log";所以测量值和有关气象站和传感器的信息!测量时,所以我需要以某种方式实现历史。

两个多星期以来,我一直在努力解决这个问题,我发现我可能应该选择SCD 4型或6型。

我想到的一个选项是spring数据envers,它应该处理历史,但在这里我不知道我应该如何";链接";对修订的度量。

第二种选择是我自己写,使用JPA生命周期回调,在我的WeatherStation实体列表中有WeatherStationHistory,在任何更新或持久化之前,在那里添加当前WeatherStation的副本,然后让Measurement指向此WeatherStation History。

所以我想知道的是,解决这个问题的最佳方法是什么,以及如何在spring引导应用程序中实现它。

我希望我已经清楚地描述了我的问题。如有任何建议,我将不胜感激。

我认为应该使用SCD的数据库级别选项。尽管我不知道如果在应用程序级别实现它是否有任何好处。

最新更新