169 похожих чатов

Ребят всем привет! Как лучше всего указывать отношения "один ко многим"

и "многие ко многим" в Laravel? Следует ли использовать конвенции Laravel или прописывать поле foreign key в миграции и более развернуто описывать методы в моделях?

23 ответов

7 просмотров

И то и другое.

Отношения указываются с целью построения запросов внутри приложения, а foreign ключи нужны базе для сохранения цепочек данных в случае изменения и/или удаления

О разных вещах говоришь. foreign тебе дает привязки, что позволяет оптимизировать запросы. А в модели ты уже описываешь взаимодействие на стороне бэк

Max 🇺🇦
О разных вещах говоришь. foreign тебе дает привязк...

Как они оптимизируют запросы? Они обеспечивают целостность данных

Sergey- Автор вопроса
Max 🇺🇦
О разных вещах говоришь. foreign тебе дает привязк...

Я про то говорю, что мы можем и не указывать foreign, и привязка все равно будет

Max 🇺🇦
Ииии...? Подскажу, индексы.

Иии? Внешний ключ не является индексом =)

Sergey
Я про то говорю, что мы можем и не указывать forei...

Будет. Но как она будет работать при 100 записях и при миллионе.

Max 🇺🇦
Будет. Но как она будет работать при 100 записях и...

При добавлении, обновлении - чуть медленее, при селекте - без разницы

Sergey- Автор вопроса
Max 🇺🇦
Не верно.

Лучше не придерживаться конвенции Laravel и явно указать привязку в файле миграции?

Sergey
Лучше не придерживаться конвенции Laravel и явно у...

Лучше придерживаться конвенции проекта, на котором ты работаешь. У нас, например, запрещены внешние ключи

とよとみ
А для чего запрещать их?

Чтобы плодить записи)

とよとみ
А для чего запрещать их?

Шардированные базы, 3 дата-центра, на уровне приложения должны обеспечивать целостность

Max 🇺🇦
Не верно.

http://www.mysql.ru/docs/man/SEC451.html

Max 🇺🇦
Не верно.

https://www.postgresql.org/docs/current/ddl-constraints.html#DDL-CONSTRAINTS-FK

Max 🇺🇦
Ииии...? Подскажу, индексы.

Да полностью противоположно

Max 🇺🇦
О разных вещах говоришь. foreign тебе дает привязк...

Как оно оптимизирует запросы? Лишь ограничивает операции INSERT/UPDATE/DELETE

Max 🇺🇦
Будет. Но как она будет работать при 100 записях и...

INSERT/UPDATE/DELETE будет работать медленее, на SELECT это никак не скажется

Sergey Gerasimov
Да полностью противоположно

Дядя, ты на приколе? Что ты мне скинул? Я об одном, ты о другом. Там сказано что не создаются автоматически. И их нужно явно указать. Значит что? Когда в миграциях указываешь foreign конкретным методом, то создается индекс, явно создается вручную.

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Господа всем привет. Для того чтобы страница индексировалась с запросом под каждый город. Это нужно делать отдельные страницы для каждого города, или есть варианты по лучше?
Владимир
8
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
Да блин, на тестах всё отлично было, теперь застрял на запуске. Как только не закавычивал, уже даже догуглился до того, чтобы string.format добавить, и на выводе получил строк...
Заха́р
2
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Карта сайта