Почему CakePHP не поддерживает внешний ключ с несколькими столбцами? - PullRequest
1 голос
/ 07 января 2009

Я искал в Google это без хорошего результата. Единственная тема , которую я нашел в треке CakePHP, была закрыта без «реального» объяснения. Поскольку CakePHP похож на один из портов rails для php, и rails поддерживает это, я хотел бы знать, почему он не поддерживает эту функцию.


ки. но я хотел бы решить, какой будет моя схема БД, в RoR у вас есть инструмент, если вы хотите его использовать, вы делаете это на свой страх и риск. Кстати: я не знаю, позволяет ли симфония это делать.

Ответы [ 4 ]

6 голосов
/ 07 января 2009

Только команда CakePHP будет знать наверняка. Один из членов команды, Нейт Абделе, , сказал о первичных ключах с несколькими столбцами еще в феврале 2007 года:

Я мог бы придумать миллион других причины, по которым многоколонные первичные ключи глупая идея, но я думаю, что наиболее Важным для 2007 года является то, что это нарушает REST-архитектуру в сети, так как нет единой точки ссылка на часть данных, и это данные теперь могут измениться без вас Вы знаете это, поэтому объекты не могут больше не будет последовательно ссылаться от один URI.

Полагаю, это будет его аргумент против внешних столбцов с несколькими столбцами.

5 голосов
/ 08 января 2009

Кто-то учил торт, сказал лучше

Я учусь этому, если что-то смехотворно сложно в CakePHP, у вас наверное проблемы с дизайном.
- асьимо

0 голосов
/ 23 июля 2010

Нет, реальная причина поддержки многостолбцовых первичных ключей заключается в том, чтобы CakePHP был встроен в существующее приложение. Не рекламируйте этот тип практики, потому что это, конечно, плохой дизайн, но если бы у вас был выбор использовать несколько первичных ключей, а не перепроектировать большую часть существующей системы администрирования, простой выбор был бы очень хорошей функцией.

0 голосов
/ 07 января 2009

Можете ли вы достичь того же результата, добавив условие со вторым столбцом в ассоциацию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...