Задать вопрос
@photosho

Где хранить дополнительные данные при связи «многие ко многим»?

Здравствуйте. Такой вопрос: есть система тестирования, где в одной таблице хранятся тесты, созданные администратором, а в другой - список пользователей. Нужно связать пользователей с тестами - здесь, вроде как, напрашивается связь "многие ко многим" - отдельная таблица, в которой будут записаны номера пользователей и тестов, которые они проходили. Вроде верно?

Но нужно знать еще некоторые данные о тестах - например, когда тест был пройден пользователем, с каким результатом и т.д. Где в этой ситуации хранить подобные данные? Насколько я знаю, промежуточная таблица для связи "многие ко многим" не может быть использована для хранения посторонних данных. Или я ошибаюсь? Если ошибаюсь (и если нет), как это все реализовать в Laravel?
  • Вопрос задан
  • 262 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Denormalization
@Denormalization
Можно хранить в промежуточной таблице. Доступ к ее полям осуществляется через pivot переменную.

foreach ($user->tests as $test) {
 var_dump($test->pivot);
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
JhaoDa
@JhaoDa
LaravelRUS Team
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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