«Имеет и принадлежит многим» - это то, где объекты свободно связаны друг с другом.Если вы использовали аналогию stores
и managers
, в одном магазине много менеджеров, а у одного менеджера много магазинов (не знаете, как это работает, может быть, они бродят менеджерами?: P).
Во-первых, ядумаю, что пример, который вы используете с менеджерами магазинов, не HABTM.Это просто один store
имеет много managers
, а не много stores
.Использование HABTM означает, что менеджеры могут принадлежать нескольким магазинам одновременно!Однако я все равно объясню.
В любом случае, при использовании HABTM для этого отношения требуется промежуточная таблица, которая, вероятно, называется manager_stores
или что-то подобное.Это будет автоматически установлено CakePHP при использовании автоматизированных инструментов.Это позволяет связать неограниченное количество менеджеров с неограниченным количеством магазинов.
Что происходит при обновлении и удалении записей, зависит от конфигурации ваших отношений MySQL (вам необходимо использовать механизм InnoDB).
Это независимо от того, какой тип отношений вы используете .
Если вы используете phpMyAdmin, перейдите в структурное представление своей таблицы.Затем нажмите «представление отношений».
Если вы правильно настроили InnoDB, вы должны увидеть отношения и два столбца с надписями «ON UPDATE
» и «ON DELETE
».Это определяет поведение при изменении записей.
Я бы здесь весь день объяснял различные типы действий ON DELETE и ON UPDATE.Попробуйте провести исследование запросов к реляционной базе данных!
Надеюсь, это вам немного поможет.Я с радостью отвечу на любые ваши вопросы!