Самостоятельно присоединяется и красноречиво

У меня есть таблица пользователей, в которой хранятся все мои пользователи. Мое приложение позволяет родителям и их детям использовать их собственные адреса электронной почты, но мне нужно иметь возможность сказать, что «ребенок 1 связан с родителем 1 и родителем 2». Я хочу сохранить все это в одной таблице, похоже, это отношения «многие-многие», поскольку многие пользователи могут принадлежать любому количеству других пользователей.

Как бы я красноречиво изобразил внутренние отношения многих-многих?

Я своими попытками попал только в сетку.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
24
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, вы представляете это так же, как и любые другие отношения «многие ко многим»; Единственное отличие состоит в том, что одна и та же модель User поддерживает как отношения по умолчанию, так и обратные отношения:

public function parents(){
   return $this->belongsToMany(User::class, "users_users", "user_id", "parent_id");
}

public function children(){
    return $this->belongsToMany(User::class, "users_users", "parent_id", "user_id");
}

Примечание: у меня могут быть user_id и parent_id наоборот, но это можно легко отрегулировать.

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

так мне нужна сводная таблица users_users?

Udders 14.09.2018 22:39

Ага :) Как и любому many-to-many, вам понадобится сводная таблица, поэтому users_users, как минимум, с parent_id и user_id

Tim Lewis 14.09.2018 22:41

Другие вопросы по теме