Любая поддержка внешних ключей в оболочке схемы CakePHP или миграции? - PullRequest
2 голосов
/ 19 сентября 2009

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

До сих пор я не нашел прямой поддержки ни в одном из них для создания ограничений внешнего ключа. Похоже, что вы можете написать сырой SQL в миграции для создания внешнего ключа.

Я что-то пропустил? Где-то есть поддержка? Должен ли я даже использовать внешние ключи? Я видел несколько комментариев, связанных с CakePHP или Ruby on Rails, в которых говорилось, что ограничения внешнего ключа не приветствуются. Наша база данных используется только одним приложением.

1 Ответ

2 голосов
/ 19 сентября 2009

Я бы не сказал, что они обескуражены, по сути. Как в CakePHP, так и в Rails целостность данных, которую предлагают внешние ключи, обрабатывается платформой. Тем не менее, это правда, только если вы делаете все «правильно». Если вы пишете свой собственный SQL, работаете нестандартным образом или обращаетесь к данным / манипулируете ими любыми другими способами, то, на мой взгляд, внешние ключи, безусловно, хорошая идея.

Я никогда не использовал инструменты миграции для CakePHP, но в моей ограниченной работе с Rails я всегда применял ключи в миграции с использованием SQL. Таким образом, вы получаете все преимущества обоих. У вас есть миграция, и вы получаете ограничения домена в случае, если вы когда-нибудь обойдете инфраструктуру для достижения какого-то определенного результата.

...