присоединиться более чем к двум столам - PullRequest
0 голосов
/ 09 декабря 2011

Я пишу приложение, которое отображает единицы жилья (они перечислены пользователями, предлагающими их в аренду). Я пытаюсь выяснить, как определить мою модель юнитов в Cakephp. У меня есть три таблицы: юниты, комплексы и пользователи.

Я знаю, что единица $ принадлежит «Пользователю», но она также принадлежит «Комплексу», поскольку каждый комплекс может иметь много единиц. Могу я это написать?

<?php
  class Unit extends AppModel {
        var $name='Unit';
        var $belongsTo=array('User', 'Complex');

} ?>

Я должен также добавить, что я не уверен, как определить мои классы для пользователя и комплекса, поскольку у пользователя может быть много комплексов, а у комплекса может быть много пользователей. Если у кого-то есть Много, может ли оно принадлежать тому, что у него есть? Это HABTM? Я очень смущен (новичок).

1 Ответ

0 голосов
/ 09 декабря 2011

Похоже, у пользователя много комплексов, а комплекс принадлежит многим пользователям.Это HABTM.

Пользователь может иметь много юнитов, но юнит может иметь только одного пользователя.Это hasMany и ownTo.

Теперь для отношений между единицами и комплексами, если комплекс может иметь много единиц, то это hasMany.Я предполагаю, что это так.Я также предположил бы, что единица принадлежит комплексу так же как пользователю.Это отлично.Единицы могут принадлежать как пользователям, так и комплексам без проблем или без необходимости использования HABTM.

Итак, я определил ваши отношения для вас выше.Кажется, вы уже знаете, как определить hasMany и ownTo, поэтому просто убедитесь, что вы настроили HABTM, как описано на этой странице: (имейте в виду, что вам нужна дополнительная таблица в вашей базе данных, и не забудьте добавить любую базу данныхстолбцы, необходимые для других отношений, либо).

http://book.cakephp.org/view/1044/hasAndBelongsToMany-HABTM

Удачи.

...