Правя нещо като вашия втори подход:имам таблицата с действителния работен набор и история с промените (timestamp, record_id, property_id, property_value). Това включва създаването на записи. Трета таблица описва свойствата (id, property_name, property_type), което помага при преобразуването на данни по-високо в приложението. Така че можете също да проследявате много лесно промените на отделни свойства.
Вместо клеймо за време можете също да имате int-like, което увеличавате за всяка промяна на record_id, така че да имате действителна версия .