Несколько вопросов от новичка

Quote

link=topic=2946.msg17304#msg17304 date=1247055406]

Читайте тут - http://www.yiiframew…ru/database.arr

А вообще BELONGS_TO это тоже самое что HAS_MANY только верх ногами. т.е. например если б вы делали что одному юзеру принадлежат много комментариев - то это HAS_MANY. А вот если вы скажите что многим комментариями принадлежит один пользователь - тогда это BELONGS_TO.

Обижаете конечно я читал.

А про направление я в принципе догадался… вот только один момент

когда Вы говорите что многим комментариям принадлежит один паользователь и ставите BELONGS_TO,

вы делаете  это описывая модель комментариев ? или пользователей ?

сори. мало ли, не все читают :)

к примеру если мне надо сделать связь много_комментариев к одному пользователю. т.е. что б при find-е какого-то комментария у меня также вытаскивалась информация о его авторе. (BELONGS_TO в моделе Comments)

а вот если мне надо связать одного пользователя со многими комментаряими т.е. что б когда я достаю юзера - получал также список его комментов - тогда дела Has_Many в моделе Users.

Quote

link=topic=2946.msg17360#msg17360 date=1247080428]

сори. мало ли, не все читают :)

к примеру если мне надо сделать связь много_комментариев к одному пользователю. т.е. что б при find-е какого-то комментария у меня также вытаскивалась информация о его авторе. (BELONGS_TO в моделе Comments)

а вот если мне надо связать одного пользователя со многими комментаряими т.е. что б когда я достаю юзера - получал также список его комментов - тогда дела Has_Many в моделе Users.

ну т.е. BELONGS_TO можно трактовать как мноко-к-одному, а HAS_MANY один_ко_многим… все ясно спасибо!

ага :) пожалуйста :)

Quote

а что насчет внешних ключей ?

дело в том что попытка удалить то что нельзя удалить вызовет исключение и ошибку уровня базы данных… Есть ли в Yii метод позволяющий проверить может ли данная запись быть удалена ? в смысле не поптка ли это нарушить целостностьб базы данных … вот о чеи я.

Я понимаю что необходимо заложить в логику программы удаление зависямых аписей а уже только после этого удаление самой записи, но дело в том что

  1. от этой записи может зависить ооочень много других записей и таблиц (да и не понятно как узнать об этом). Просто скажем у меня порядка двух сотен таблиц и в большинстве из них данные имеют связь с этой записью (которую мы хотим удалить), не понятно как это определить да и зачем это делать если это делает БД ?

  2. хочется получить некую "красивую" ошибку, точнее сообщение о ней, а не эксепшн…

Булу рад любому совету.

Спасибо.

  1. В логику программы можно и не закладывать удаление зависимых записей, а использовать возможности MySQL и его InnoDb как следует.

  2. Что касается невозможности удаления какой то записи, ввиду того, что CONSTAIN на неё настроен как DELETE - RESTRICT, то это Yii об этом не знает и знать не должен. В любом случае необходимо предварительно проверить может ли запись быть корректно удалена и что за этим последует. Это уже бизнес логика. Допустим есть пользователь и 1000 объявлений. Админ хочет удалить этого пользователя, ему выводится список последствий, что удалятся все материалы пользователя из системы. Так вот и базе и Yii абсолютно по барабану что зависимые записи тоже удалятся, поэтому и бизнес логика. DELETE - RESTRICT опять же как дополнительная защита разработчика от своих же ошибок. Тут все точно также как в случае с UNIQUE - дополнительный валидатор на возможность удаления той или иной записи.

я понимаю что можно на действие удаления в валидаторе на требуемое поле повесить свой обработчик, но я имеб ввиду есть ли во фреймворке средства для определения, можно ли удалить запись ? или необходимо такую функцию самом разработать ? и если самому, то какой способ наиболее оптимальный…

Я в принципе понимаю что можно селектом "пощупать" на наличии зависимых полей, но правильный ли это выход ?

я затупил и уже нашел свою проблему, пожалуйста удалите сообщение =)