Путать с типом отношений, которые будут использоваться - PullRequest
0 голосов
/ 22 мая 2018

У меня есть модель 'список'.И есть 3 типа (бизнес-листинг, листинг франчайзера и листинг франчайзи) одного и того же типа, и каждый тип листинга имеет разные данные.С какими типами отношений я должен идти?Как будут соотноситься модели?Я имею в виду, как модель «листинг» будет связана со всеми тремя моделями?И какова будет структура модели листинга, контроллеров?

Редактировать: Проблема еще не решена :( Поскольку я пытаюсь получить некоторые данные из дочерней таблицы через родительский, это не дает мне никакогорезультат. (Прикрепленное изображение для лучшего понимания структуры) enter image description here

1 Ответ

0 голосов
/ 22 мая 2018

Я бы взял что-то в строке ниже:

Вариант 1:

  • Листинг

    • перечисление_тип_ид: [числовой]
    • other_fields_here: [строка]
  • Типы списков

    • id: [числовой]
    • имя: [string]

Опция 2:

  • Общий список
    • your_generic_fields_here: [string]
    • child_id: default null [numeric] -> указывает на тип (франшиза, бизнес и т. д.)

Вышесказанное также может быть сделано наоборот;ребенок связывается с родителем, а не родитель с ребенком.Просто добавьте parent_id в списки ниже.

  • Список франшиз

    • other_fields_here: [строка]
  • Бизнес-листинг

    • other_fields_here: [строка]
  • Другие типы листингов ....

Определите, какие столбцы вам нужны, а какие разделены между типами списков, и поместите их в общую таблицу листингов;создайте другие таблицы для остальных и используйте parent_id для общих данных;или просто полностью использовать разные таблицы.

Laravel

Я бы не стал слишком усложнять это, просто используйте три модели, основанные на базовой модели Листинга;базовая модель может содержать тип перечисления и другие данные, как показано здесь .

Подробнее о полиморфных отношениях можно прочитать здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...