Модель отношений Laravel. Чистая БД связана

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

Я получил следующее:

Я хочу, чтобы люди выбирали цель. Если пользователь выбирает цель, отображаются соответствующие пакеты. В этих пакетах есть кнопка информации, содержащая дополнительную информацию о пакете.
Если пользователь нажимает на информационную ссылку, появится информация о соответствующем пакете.

FYI! Будет 9 целей. У каждой цели есть 3 пакета, и у каждого пакета есть 1 packageinfo.

Objective Model
// contains
- id
- name
- icon

// relationship
HasMany package

////////////////////////////////////////////////////
Package Model
// contains
- id
- title
- information
- info_link
- buy_link

// relationship
belongsToMany Model
hasMany PackageInfo -- or has PackageInfo ?

///////////////////////////////////////////////////
PackageInfo Model
// contains
- id
- body

// relationship
belongsToMany Package -- or belongsTo Package ?//////////////////////////////////////////////////
Objective_package Pivot
- id
- Objective_id
- Package_id

package_packageInfo pivot
- id
- Package_id
- packageinfo_id

Правильно ли я определяю отношения, или я действительно прочитал весь документ как вверх ногами?

1

Решение

Задача отношения к пакету кажется правильной, но если есть только 1 packageinfo, вам не нужна сводная таблица для этого отношения

//PackageInfo Model
- id
- package_id
- body

//relationship
belongsTo Package
$this->belongsTo('Package');

Самый быстрый ответ, который я могу дать, чтобы помочь объяснить это
hasOne предназначается для данных, которые принадлежат родительскому объекту, но не всегда могут потребоваться для его извлечения. Как у пользователя есть профиль. 90%, если не чаще, вы не хотите, чтобы их биография или профиль, но этот профиль является эксклюзивным для этого пользователя.

hasMany будет как Адреса. Пользователь может иметь несколько адресов для доставки или выставления счетов, но ни у одного другого пользователя не должно быть доступа к этим данным, поэтому у этого пользователя есть много адресов

ownToMany, или Many To Many, используется несколькими объектами. Пользователь может иметь много ролей, а роль будет иметь много пользователей. В сообщении блога может быть много тегов, а тег будет прикреплен ко многим сообщениям.

Полиморфный; вам никогда не придется беспокоиться, но идея в том, что изображение может принадлежать множеству разных объектов, но по-разному. Как в члене Галереи, или в миниатюре Пользователя, или в изображении заголовка Блога и т. Д. Это нарушает реляционное сопоставление данных в имени кода и возможности повторного использования. Рекомендуется по своему усмотрению, так как многие имеют разные мнения о том, как / когда использовать это.

Надеюсь это поможет. Если есть что-то, с чем я пытаюсь вам помочь или если я пропустил то, что вы искали, пожалуйста, дайте мне знать.

0

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

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

По вопросам рекламы [email protected]