我正在尝试解决如何为我的应用程序创建“日志”并将它们存储到数据库的问题。
假设我有这个数据库结构:
第一个表:
weatherstation_id |气象站名称 | weatherstation_ip_address
第二张表:
传感器_id |传感器名称 |传感器编号 | weatherstation_id
第三张表:
measurement_id |值(value) |测量日期 | weatherstation_id |传感器_id
从这里我应该能够得到“日志”,所以关于气象站和传感器的测量值和信息!在进行测量时!,所以我需要实现不知何故的历史。
我尝试解决这个问题已经两个多星期了,我发现我可能应该使用类似 SCD 的东西。输入 4 或 6。
我想到的一个选项是 spring-data-envers应该处理历史,但在这里我不知道如何将测量“链接”到修订。
第二种选择是自己写,使用JPA Lifecycle Callbacks并在我的 WeatherStationHistory 的 WeatherStation 实体列表中,在进行任何更新或持久化之前,在其中添加当前 WeatherStation 的副本,然后让测量指向此 WeatherStationHistory。
所以我想知道解决这个问题的最佳方法是什么,以及如何在 spring boot 应用程序中实现它。
我希望我已经清楚地描述了我的问题。如果有任何建议,我将不胜感激。
最佳答案
我认为您应该为 SCD 使用数据库级选项。虽然我不知道如果它在应用程序级别实现是否有任何好处。
关于java - SCD (slowly changing dimension) Type 4/6 - 如何在spring boot app, hibernate envers中实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64993719/