Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 27.08.2017 13:22:25

Вопрос про отношения

Доброго времени суток.
Скажите пожалуйста, как в laravel, грамотно организовать отношения в ОДНОЙ таблице.
Если было бы сделано в двух таблицах то это выглядело бы так.

Contacts (id, name_en, name_ru) ->hasMany(Contact_lists)
Conctact_lists (id, contact_id, type(enum(email,phone))

Но как это реализовать в одной и той же таблице?
Спасибо.

Не в сети

#2 31.08.2017 12:54:49

Re: Вопрос про отношения

Скажите, чего вы пытаетесь добиться вашим решением?

Изменено lodar (31.08.2017 12:55:00)

Не в сети

#3 31.08.2017 12:56:40

Re: Вопрос про отношения

Малого количества таблиц

Не в сети

#4 31.08.2017 12:57:41

Re: Вопрос про отношения

Ваше решение не логично и нарушает все принципы нормализации бд. С другой стороны, если вы хотите хранить в бд переводы с всех таблиц, добавьте поле типа таблицы в таблицу с переводами, а в основную модель метод который возвращает по ид и этому полю-типу строки.

Изменено lodar (31.08.2017 13:00:41)

Не в сети

#5 31.08.2017 13:00:16

Re: Вопрос про отношения

Хорошо, а если предположим я собираюсь сделать таблицу в которой хранятся меню. Где parent_id это id записи в этой же таблице. Тогда как быть ?

Не в сети

#6 31.08.2017 13:07:39

Re: Вопрос про отношения

Зачем? Я бы создал 2 таблицы, Основное меню (табл1) и дети этого меню (табл2)  с парент_ид. Повесил бы форейгн кей и забыл бы про обеспечения целостности. А так вы рискуете убить запись родителя и оставить всех детей, это раз. Вам потребуется повесить логику обеспечения целостности в бэкенд, это два. Вы можете получить циклическую ссылку, это три. Аргументов не достаточно?

Не в сети

#7 31.08.2017 13:09:44

Re: Вопрос про отношения

Достаточно, спасибо за внятное объяснение smile

Не в сети

#8 31.08.2017 13:15:35

Re: Вопрос про отношения

добавьте поле типа таблицы в таблицу с переводами, а в основную модель метод который возвращает по ид и этому полю-типу строки

Я так понимаю вы сейчас говорите про полиморфные связи.

Изменено MeKree (31.08.2017 13:15:48)

Не в сети

Подвал раздела