belongsTo
и hasMany
являются парой и выражают отношение один ко многим. Одна модель принадлежит другой (то есть имеет поле other_model_id
), в то время как другая модель имеет множество записей в модели, которой принадлежит . Это две стороны одной медали.
hasAndBelongsToMany
- это термин Кейка для отношений «многие ко многим». Вот пример об этом типе отношений. Вы используете это, когда обе модели могут иметь много другой модели, например Люди-Люди, дружеские отношения. Соотношение «многие ко многим» между двумя моделями подразумевает три таблицы: model_a
, model_b
и model_a_model_b
. Если вы пытаетесь использовать этот тип отношений без третьей таблицы, вы, вероятно, просто получите кучу ошибок.