Целесообразно ли использовать полиморфные отношения с соединениями?

Я создал миграции, а также их отношения. Похоже, я использую полиморфные отношения, потому что в одной таблице у меня может быть значение одной модели, или у меня может быть значение другой модели. как вы можете догадаться, у меня есть что-то вроде этого

ID Mappable_type Mappable_id значение

Mappable_type может быть одной или многими другими моделями. mappable_id будет соответствующим идентификатором из этой модели. Мне это нужно, потому что я создаю динамический конструктор форм, и именно так я проектировал базу данных.

Теперь мне нужно собрать несколько записей из 5 таблиц вместе, поэтому я должен использовать соединения. таблица, где у меня есть mappable_type, находится на третьем месте из этих 5 соединений. Что мне теперь делать, чтобы получать только данные из этих 5 объединений, которые имеют определенный тип модели в этой таблице морфов? Я делаю что-то подобное сейчас:

$final = Dynamic::join('dynamic_properties_values','dynamic_properties_values.dynamic_id','=','dynamic.id')
->join('dynamic_properties_mapping','dynamic_properties_mapping.id','=','dynamic_properties_values.mapping_id')
->where('dynamic_properties_mapping.mappable_type','=','App\Driver')
->get();

Как видите, я написал от руки что-то вроде

«App \ Driver»

. Неважно, что я написал это вручную или сохранил в переменную и чем использовал это здесь. Что меня действительно беспокоит, так это то, что, скажем, когда я вставлял данные в эти морфируемые таблицы, модель была сохранена как «App \ Driver». Что делать, если я ошибаюсь и при получении с объединениями я пишу что-то вроде App \ Http \ Driver? или что если я изменил расположение самой модели в моем проекте кода?

Каков наилучший способ не допускать подобных ошибок к тому времени, когда мой проект достигнет огромного количества пользователей?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector