При условии, что вы не имеете дело с огромными объемами данных, и дополнительное временное измерение не переместит вашу базу данных на грань, нет никаких серьезных минусов в исторически версионных данных. Дополнительная сложность запроса может быть небольшой болью, но это не главное.
В моем случае я написал плагин rails, который обрабатывает версионирование, он добавляет 5 столбцов к каждой версионной таблице (и помогает обрабатывать запросы / манипуляции и т.д.):
valid_from - datetime - дата и время, когда эта версия была создана в
valid_to - datetime - дата и время, когда эта версия перестала быть действительной
root_id - целое число - идентификатор исходной строки (это следующая версия)
create_by - целое число - идентификатор пользователя, который выполнил создание этой версии
retired_by - целое число - идентификатор пользователя, который удалился с этой версии
Для текущих активных строк valid_to равно нулю. Добавление индекса для valid_to помогает поддерживать быстродействие.