У меня есть вариант использования примерно такой:
Account -> Relation -> Account
В таблице Relation
записываются все взаимодействия между двумя учетными записями. В данный момент это представлено как Pivot. Проблема, с которой я сталкиваюсь - это однонаправленное отношение «многие ко многим». Я не могу ссылаться на «родительскую» учетную запись и их отношение из «дочерней» учетной записи, используя тот же вызов отношения из-за ограничения Laravel Eloquent
, не поддерживающего двусторонние отношения со многими ссылками «многие ко многим» ( который Doctrine поддерживает , но не документирован четко и не соответствует скорости Laravel). Предполагая, что account01
и account02
являются единственными в отношении, результаты:
$account02 = Account::first()->assocations->first();
$account02->associations; //null or []
У меня уже есть успех с этим решением , остается только ошибка загрузка с «детского» аккаунта. Я не думаю, что использование графической базы данных подойдет именно этому варианту использования, потому что данные сильно структурированы.
3 вопроса:
- Помогите ли вам сделать загрузку с помощью обходного пути? Я беру систему в производство с этой структурой и хочу, чтобы она была готова, если
Eloquent
подлежит замене. - Если наш сценарий использования перерос
Eloquent
, я должен рассмотреть вопрос о принятии время научиться Doctrine
(шаблон сопоставления данных или активная запись) для реализации самоссылочных таблиц с отношениями "многие ко многим"? - Я ошибаюсь из-за сохранения отношений базы данных структурированных и графовых данных? Если да, какую базу данных мне следует использовать для этого?
Приложение:
Я думал сделать Relation
полноценной моделью / Сущность, поэтому я тоже могу связать с ней отношения. Сейчас я обошел ограничение Pivot
, но чтобы преобразовать Relation
в полноценную модель / сущность, мне все равно нужно решить проблему однонаправленных отношений с самообращением.
Current Схема дизайна
+------------+
| accounts |
+------------+
| id |
| ... |
| created_at |
| updated_at |
+------------+
+----------------------+
| account_associations |
+----------------------+
| account_0 |
| account_1 |
| message_id |
| post_id |
| other_id |
| ... |
| created_at |
| updated_at |
+----------------------+