Ik doe zoiets als je tweede benadering:heb de tabel met de daadwerkelijke werkset en een geschiedenis met wijzigingen (tijdstempel, record_id, property_id, property_value). Dit omvat het maken van records. Een derde tabel beschrijft de eigenschappen (id, property_name, property_type), wat helpt bij dataconversie hoger in de applicatie. U kunt dus ook heel gemakkelijk wijzigingen van afzonderlijke eigenschappen volgen.
In plaats van een tijdstempel zou je ook een int-like kunnen hebben, die je voor elke wijziging per record_id verhoogt, zodat je een echte versie hebt .