Каков наиболее приемлемый подход Rails?Подтвердить FK сейчас или восстановить позже?
Validate, что внешний ключ существует на создание/обновление
или
«Контроль повреждения», когда мы хотим использовать внешний ключ несуществующей?
Первоначальная проверка требует большего количества ресурсов при создании/обновлении строки и даже может быть избыточной, когда я строю строки в моем коде (то есть не создан пользователем). Тем не менее, я могу плавно писать свою бизнес-логику, не опасаясь столкнуться с плохим внешним ключом.
С другой стороны, контроль повреждений позволяет быстро создавать и обновлять, но, конечно, больше проверок и восстановления в моей логике.
Можете ли вы придумать какие-либо другие плюсы и минусы? Возможно, есть еще больше альтернатив, чем только эти две доктрины.
Как опытные разработчики Rails справляются с этой проблемой?
Исправленные данные более ценны для меня - приложения приходят и уходят, и это экономит время кодирования вокруг плохих данных, когда вам нужно его получить. –
+1 при использовании FK, даже с рельсами, имеющими валидации данных в моделях. Вы никогда не знаете, когда другое приложение должно будет иметь доступ к вашей БД, поэтому, по крайней мере, сохранение целостности (а не бизнес-правил) в вашей БД с использованием FK - это умный ход. –