Для сохранения истории изменения цен можно внешней обработкой создавать новые установки цен на основании предыдущих и в них задавать изменение на дельту или %.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший