| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		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 из схемы базы корректно извлечь не получится. Но что-то же в качестве шаблона получить можно. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
	
	
	
		 |