Я работаю над приложением RoR, но это общий вопрос стратегии для ООП. Рассмотрим случай, когда существует несколько типов ссылок, для которых вы храните данные: Книги, Статьи, Презентации, Главы книг и т. Д. Каждый тип ссылок является частью иерархии, в которой обычное поведение находится в наиболее общей точке наследования, и на уровне БД я использую однотабличное наследование. Тип задается с помощью опции выбора, поэтому предположим, что я вводил данные, как если бы это была Книга, но потом понял, что это всего лишь глава. Поэтому я изменяю тип ссылки, выбирая «Глава книги», которая затем публикует обновление существующей модели / формы. Вопрос в том, какова правильная стратегия для этого?
С одной стороны, представляется предпочтительным преобразовать существующую запись в БД, чтобы избежать исчерпания идентификатора и, возможно, сэкономить на операциях по созданию / удалению записей. Однако это усложняет стратегию обновления.
С другой стороны, похоже, что в большей степени в соответствии с общей ориентацией объекта создается новый объект (и запись) с использованием старого объекта для инициализации значений, которые вы хотите сохранить, а затем удаляет старый объект. Я думаю, что это имеет больше смысла с точки зрения пространства объектов (кучи), и я думаю, что оно больше соответствует идеям, аналогичным идеям общих систем.
Тем не менее, я не прибил этого, и, посидев на нем некоторое время, я передаю его в это сообщество, чтобы узнать, каков "правильный" способ сделать это.