Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Pilat
цитировать
Зарегистрирован: 21 Янв 2008 13:43:58 Сообщения: 4
|
Добавлено: 21 Янв 2008 13:47:23 Заголовок сообщения: Общий вопрос CakePHP & PostgreSQL - модель данных |
|
|
Я использую PostgreSQL. Отличие от MySQL - возможность описать ссылочную целостность на уровне СУБД. Вопрос: можно ли избежать дублирование этого описания в модели CakePHP ? |
|
Вернуться к началу |
|
|
evilbloodydemon
цитировать
Зарегистрирован: 11 Окт 2007 20:32:19 Сообщения: 125
|
Добавлено: 21 Янв 2008 14:21:00 Заголовок сообщения: |
|
|
нет. в кэйке описания связей не для ссылочной целостности, а для того чтобы модели знали, какие данные им брать из других моделей. _________________ поздняк метаться - ракеты в воздухе
jabber-конференция по CakePHP - xmpp:cakephp@conference.jabber.ru |
|
Вернуться к началу |
|
|
Pilat
цитировать
Зарегистрирован: 21 Янв 2008 13:43:58 Сообщения: 4
|
Добавлено: 21 Янв 2008 14:27:49 Заголовок сообщения: |
|
|
Ну как же. Каскадное удаление на этом построено, например.
Да и какая разница для чего, если это описание полностью дублирует ссылочную целостность? |
|
Вернуться к началу |
|
|
evilbloodydemon
цитировать
Зарегистрирован: 11 Окт 2007 20:32:19 Сообщения: 125
|
Добавлено: 21 Янв 2008 14:55:33 Заголовок сообщения: |
|
|
ну да, каскадное удаление. его можно не использовать.
а вот описания в моделях ссылочной целостностью заменить нельзя. потому что, исходя из вашей логики, если в базе данных есть ссылочная целостность, то можно select'ы без join'ов писать. _________________ поздняк метаться - ракеты в воздухе
jabber-конференция по CakePHP - xmpp:cakephp@conference.jabber.ru |
|
Вернуться к началу |
|
|
Pilat
цитировать
Зарегистрирован: 21 Янв 2008 13:43:58 Сообщения: 4
|
Добавлено: 21 Янв 2008 15:25:35 Заголовок сообщения: |
|
|
А одно и то же мы понимаем под ссылочной целостностью? Я под этим понимаю ограничения, накладываемые foreign keys. Как можно писать тогда селекты без join? |
|
Вернуться к началу |
|
|
evilbloodydemon
цитировать
Зарегистрирован: 11 Окт 2007 20:32:19 Сообщения: 125
|
Добавлено: 21 Янв 2008 15:38:21 Заголовок сообщения: |
|
|
хорошо, начнем сначала.
термины:
"описания в модели CakePHP" - hasOne, belongsTo, hasMany, hasAndBelongsToMany - нужны для ассоциации данных, то есть какие данные выбирать из бд еще вместе с данными основной модели.
"Каскадное удаление" - del($id, $cascade) - метод модели, удаляющий запись и (если $cascade==true) ассоциированные записи.
я понимаю вопрос следующим образом: если в бд задана ссылочная целостность, то можно ли не писать hasOne и тд.
мой ответ: нет, потому что "описания в модели CakePHP" нужны для _выборки_ данных, а "Каскадное удаление" - это лишь следствие.
п.с. но если выборка не нужна, то можно и не писать =) _________________ поздняк метаться - ракеты в воздухе
jabber-конференция по CakePHP - xmpp:cakephp@conference.jabber.ru |
|
Вернуться к началу |
|
|
Pilat
цитировать
Зарегистрирован: 21 Янв 2008 13:43:58 Сообщения: 4
|
Добавлено: 21 Янв 2008 16:35:15 Заголовок сообщения: |
|
|
evilbloodydemon, я понял что Вы имеете ввиду. Действительно, hasOne или hasMany из схемы базы корректно извлечь не получится. Но что-то же в качестве шаблона получить можно. |
|
Вернуться к началу |
|
|
|