BonBonSlick
@BonBonSlick
Junior Web Developer Trainee

Как хендлить кейсы когда FK пустая строка?

Без понятия как такие записи попадают в БД и где их искать.
Но любая ORM выдаст ошибку при получении связи к примеру
"Entity of type 'Test\Entity\DoctrineEntity' for IDs relatedEntityFKID() was not found"


1 - вариант, модифицировать все запросы, джойны и выборки делая их WHERE NOT NULL AND WHERE related_fk_id != ''
2 - добавлять проверки в самом коде
$related = $entity->relatedEntity()
if('' !== $related->id()){
 // use $related module, contract 
}

3 - вбить запрос и обновить все данные, но тут свои сложности, сетить всем таким битым данным дефолтные, то какие? null? Или другие? И это не укажит на первоисточник, почему такие сущности попали в БД.

Ваши действия?
  • Вопрос задан
  • 22 просмотра
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA, contributor
Проставить реальные FK в СУБД и получать ошибку при попытке некорректной записи, как нормальные люди.

Исторические данные исправить способом, имеющим смысл для предметной области и бизнес-требований.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы