繁体   English   中英

SCD(缓慢变化的维度)Type 4/6 - 如何在spring boot app、hibernate envers中实现

[英]SCD (slowly changing dimension) Type 4/6 - how to implement in spring boot app, hibernate envers

我正在尝试解决这个问题,我应该如何为我的应用程序创建“日志”并将它们存储到数据库中。

让我们假设我有这个数据库结构:

第一张桌子:

weatherstation_id | weatherstation_name | weatherstation_ip_address

第二表:

sensor_id | sensor_name | sensor_number | weatherstation_id

第三个表:

measurement_id | value | measure_date | weatherstation_id | sensor_id

从中我应该能够获得“日志”,因此有关气象站和传感器的测量值和信息!在进行测量时! ,所以我需要以某种方式实现历史。

我试图解决这个问题超过两个星期,我发现我可能应该使用SCD类型 4 或 6 之类的东西。

我想到的一种选择是spring-data-envers应该处理历史记录,但在这里我不知道我应该如何将测量“链接”到修订版。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM