Ваш план на 100% правильный.
Эта дополнительная таблица называется таблицей «аудита» или «истории» (есть тонкие различия, но вам не нужно сильно беспокоиться - теперь у вас есть «официальные» термины, которые вы можете использовать для дальнейших исследований).
Если в главной таблице есть столбцы A, B, C, то аудит будет иметь еще 3: A, B, C, Operation, Changed_By, Change_DateTime (имена зависят от ваших вкусов и стандартов кодирования).
В столбце «Операция» хранится информация о том, было ли изменение вставкой, удалением, старым значением обновления или новым значением обновления (часто оно имеет ширину 3 символа и операции называются «INS» / «DEL» / «U_D» и «U_I»). ", но есть и другие подходы).
Данные в таблице аудита заполняются с помощью триггера на главной таблице.
Затем убедитесь, что в столбце Change_DateTime есть индекс.
И чтобы найти список изменений, вы отслеживаете время последнего опроса, а затем просто делаете
SELECT * FROM Table_Audit WHERE Change_DateTime > 'LAST_POLL_TIME'