Фон
Я впервые разрабатываю бэкэнд Rails для своего приложения Swift, и мне интересно, должен ли я хранить идентификатор записи в моей модели. Со стороны Swift моя архитектура в основном MVVM, и большая часть бизнес-логики c содержится в виртуальных машинах, поэтому модели в основном являются DTO в том смысле, что они являются Codable, но они также используются для заполнения представлений во всем приложении.
Проблема
До сих пор я разработал маршруты таким образом, чтобы небезопасные методы HTTP были ссылками с идентификаторами, соответствующими идентификатору записи MySQL, но я Я понимаю, что это будет означать, что во многих случаях мне потребуется сохранить идентификатор в модели Swift для срока службы объекта. Это не ужасно, но я верю, что это соединит базу данных и интерфейс довольно плотно.
Есть ли альтернатива этому? Если я решу переключить схемы базы данных, я бы предпочел редактировать только мои * классы обслуживания на внешнем интерфейсе.
Я знаю, что этот камень существует https://github.com/norman/friendly_id, но моя самая большая таблица не обеспечит уникальность ни для одного столбца, кроме id, поэтому я не уверен, что это приемлемый вариант.
Я уверен, что этот вопрос задавался ранее, но я не смог ничего найти.
Спасибо.