Я сейчас создаю приложение для рельсов, основанное на страховке. Существует раздел администратора, где сотрудники могут контролировать системные таблицы, в основном то, что отображается в раскрывающихся списках, хотя некоторые из них более сложны с их собственными ассоциациями. Основной моделью в этом приложении является политика, которая должна содержать / ссылаться на информацию во многих других таблицах, например. заявители, ответчики, уровень покрытия, пользователи и т. д. Каждый из них может иметь свои собственные ассоциации, такие как ссылки на человека, который, в свою очередь, ссылается на адреса и т. д.
Одна из более сложных таблиц, с которыми связана политика, - это общий уровень покрытия, который содержит финансовую информацию для определения премии, платежей и т. Д.
Когда создается политика, мне нужно сделать снимок всех этих данных. Если в политику позже вносятся изменения администратором, требуется контроль версий, даже для связанных данных.
Мне интересно, есть ли у кого-нибудь общие решения этой проблемы. В настоящее время я размышляю над потерянными записями, наследованием одной таблицы, оставляя ссылки на системные таблицы на месте, но делаю эти данные недоступными для редактирования, копирую данные в поля в таблице политик (делая это текстовым полем при редактировании, выбирая поле на создать) или создать две таблицы, одну для живых, одну для шаблонов.
Пока лучшее, что я могу придумать, - это совокупность различных методов, описанных выше, в зависимости от потребностей приложений. Это должно быть общая проблема в приложениях !? Есть ли у вас лучшие идеи / советы о том, как решить этот тип проблемы?