Добрый день, подскажите пожалуйста, как более грамотно нужно решить мою задачу.
У меня имеется 5+ таблицы описывающие как бы инвентаризацию компьютерного парка в сети. Информация в таблицы поступает от сторонней программы с различной периодичностью, процесс вставки контролировать не могу, могу только уже с имеющейся информацией что то делать
Первая эта таблица
REPORT в неё время от времени вставляются новые строки, т.е. каждая новая строка, это созданный новый отчёт
Вторая это
CPU - таблица справочник процессоров использующиеся в компьютерном парке сети (значения уникальны)
И третья
CPU_RELATION_REPORT - таблица для организации связи многие ко многим между REPORT и CPU
И аналогично 4 и 5 таблица, просто описывающие MOTHERBOARD
Ниже на скриншоте привел мою проблему, а именно в том, что отчеты снимаются с компьютеров при каждой их включении, и получается так, что смена комплектующих это явление достаточно редкое, и в результате чего порождаются очень много повторяющихся связей и отчётов как таковых, а смысла их хранить нет никакого
Так вот вопрос, в том, как грамотно от таких избавляться, какой такой хитрый нужно сделать запрос который найдёт строки отчётов у которых по связям одни и теже связи с таблицами CPU, MOTHERBOARD, ... (таких таблиц справочников на самом деле 10 и более) по сравнению с предыдущими строка в разрезе одного HOST и удалит их.
Т.е. по скриншотму ниже нужно удалить первую строку из REPORT и первые строки из CPU_RELATION_REPORT, MOTHERBOARD_RELATION_REPORT - тем самым оставив наиболее свежую и актуальную.
Т.е. нужно как то хитро за уникалить комбинации связей и отчётов избавившись от дубликатов
p.s. причем надо признать, что дальше у меня ещё сложнее задача, есть такие связи которые ещё имеют дополнительные атрибуты, т.е. к таблие ..._RELATION_... подключается ещё одна таблица которая описывает какие то переменные именно у этой связи - и получается нужно ещё смотреть уникальность не только в разрезе REPORT -> RELATION -> CPU, а ещё и значений дополнительной таблицы подключенной к RELATION