Stas
Профиль с ID 4 => и несколько предметов (subject)
Stas
Stas
Но у меня только профиль выводится..
Andrey
Понял. Это "один-ко-многим".
public function subjects() {
return $this->belongsToMany(Subject::class);
}
Andrey
С мобилы сложновато, но вроде как-то так. Дальше давай сам. В доке тебе нужа тема пивот-связей.
Stas
Это в модель Profile писать?
Andrey
Да
Stas
А то у меня там
Stas
public function subject()
{
return $this->belongsToMany(Subject::class');
}
Andrey
Дык это оно и есть, ток я бы метод переименовал. Ты же несколько записей запрашиваешь, а называется будто одну...
Andrey
А как дальше получаешь? Форычем гонишь или как-то иначе?
Stas
Не просто $test = Profile::find(4)->subjects();
dd($test);
Andrey
Что-то где-то упустил... Код-то верный из числа того что ты предоставил, и работать должен как надо.
Stas
Я понял спасибо..
Andrey
А так если в пивот-таблице нет доп полей и намеренно не будешь обращаться, то к ней не нужно создавать модель, как и поле id
Stas
Пивот таблица это типа связующая?
Vitalii
Да
Dmitriy
Пивоты - это баги в проектировании бд, и это неправильно
Dmitriy
Почитайте про нормализацию
Александр
Почитайте про нормализацию
То есть ты не допускаешь в принципе существовании связей many to many в грамотно спроектированной бд?
Dmitriy
Хотя вложенных таблиц и остального я много повидал
Dmitriy
Почитайте про уровни нормализации. В википедии точно есть
Dmitriy
Их 6, а по сути 7
Dmitriy
Может и троллинг, а может вы в базах просто в нуль
Dmitriy
Когда нужна третья таблица, это баг и плохо
Dmitriy
Они у вас в разных таблицах?
Dmitriy
Ну если так, то тоже читаем про нормализацию
Dmitriy
В нормальной дизайна бд, третья таблица не нужна.
Dmitriy
Но бывает, что делал базу рукожоп, для этого и нужны эти костыли
Dmitriy
Если проект на ранней стадии, то лучше привести базу в порядок, что бы потом не прыгать через таблицы. Для локалхоста ещё подойдёт, а на больших базах, да и на любимом посгрессе производительность уйдёт просто в Гулина
Dmitriy
В нулину
Dmitriy
В 0
Dmitriy
Четко же написано, что не нужны в базе лишние сущности. Третья таблица- это лишняя сущность
Nik
Nik
а то тут пол чата сейчас себя дураками почувствовало
Dmitriy
Нормальные формы бд
Dmitriy
В гугле
Nik
Dmitriy
Вики
Nik
ты совсем глупый? ссылочку дай, удели 2 минуты времени
Illia
без 3 таблицы в м:м нарушается 1нф
Illia
можешь опровергнуть ссылкой
Nik
не может, в том и дело
Dmitriy
https://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%84%D0%BE%D1%80%D0%BC%D0%B0
Dmitriy
Устранение избыточности производится, как правило, за счёт декомпозиции отношений таким образом, чтобы в каждом отношении хранились только первичные факты (то есть факты, не выводимые из других хранимых фактов).
Dmitriy
https://bourabai.ru/einf/subd1.htm
Dmitriy
http://www.mstu.edu.ru/study/materials/zelenkov/toc.html
Illia
Dmitriy
хранились только первичные факты (то есть факты, не выводимые из других хранимых фактов)
Nik
Dmitriy
А Вы очень быстро читаете
Dmitriy
Речь идет о СУРБД
Dmitriy
А то щас еще в монго скатимся
Nik
зачем? вопрос конкретно про пивоты в рсубд
Dmitriy
А прочитать это сложно ?
Dmitriy
Извините, Я не могу так. Ну сходиде на хекслет, там курс вмемянемый есть.
Nik
хех) ясно-понятно)
Dmitriy
Базы данных: SQL (DDL/DML)
Dmitriy
https://ru.hexlet.io/courses
Dmitriy
В общем если лень читать, то все очень просто. В базе ничего не должно повторяться, и не должно быть ничего лишнего. Вот как это сделать - это уже другой вопрос, и зачастую довольно сложный.
Nik
ты сам себе противоречишь. м2м как раз и созданы, чтобы не дублировать все потенциальные связи в 1 кортеж
Illia
Давай скажешь как избежать повторения для этого примера без 3 таблицы? Пример ведь элементарный
Illia
Есть пользователи и группы (м:м), как тут без 3 таблицы?
Dmitriy
что за мм
Illia
Many to many
Timur
как запустить миграцию на удаленную базу?
Timur
😁
Dmitriy
https://stackoverflow.com/questions/35307406/hibernate-many-to-many-without-third-table
Dmitriy
Извини за Java
Dmitriy
Hibernate это тот же JPA, или просто ORM
Illia