Я пытаюсь разработать небольшой инструмент отчетности (с SQLite Backend). Я лучше всего могу описать этот инструмент как «транзакцию». То, что я пытаюсь сделать, это отслеживать «транзакции» от еженедельного извлечения данных:
- «новый» (или добавить) - ресурс является новым для моего приложения, так как мое приложение, возможно, не отслеживало этот ресурс раньше, так как его не видели через выдержки.
- «обновить» (или нажать) - этот ресурс используется в последнее время, срок хранения обновлений составляет еще одну неделю.
- «удалить» (или удалить) - этот элемент не использовался со времени последнего отчета (необязательно, но было бы неплохо иметь график для отображения изменений спроса на ресурсы по неделям).
Все, что у меня есть, - это еженедельное извлечение данных (простой файл с разделителями каналов), поступающее из устаревшей системы архивирования / управления записями, которую я не могу контролировать.
Каждая строка может быть переработана в основном так:
resource_id | resource info | customer_id | customer_info
Образец данных:
10| Title X | 1 | Bob
11| Another title | 1 | Bob
10| Title X | 2 | Alice
Цель состоит в том, чтобы упростить составление отчетов о ресурсах, которые не использовались в течение X месяцев (на основе последнего попадания). Существует период хранения, когда ресурсы сохраняются для удобства доступа, если они популярны. Ресурс, который не использовался в течение 18 месяцев, отмечен для долгосрочного архивирования в другом месте.
Это должно быть общей проблемой. Хотите знать, существует ли универсальный алгоритм для определения того, что нового / такого же / удаленного между наборами данных (дБ по сравнению с последним извлечением)?