Может ли Zend применять ограничения внешнего ключа для таблицы MyISAM? - PullRequest
0 голосов
/ 16 августа 2011

Например, если у меня есть что-то вроде этого:

class Application_Model_DbTable_Events extends Zend_Db_Table_Abstract
{
  protected $_name = 'events';
  protected $_dependentTables = array('UsersEvents');

  protected $_referenceMap    = array(
      'Creator' => array(
          'columns'           => 'created_by',
          'refTableClass'     => 'Users',
          'refColumns'        => 'ID'
      ),
  );
 ...

Полагаю, это звучит оптимистично, но сможет ли Zend убедиться, что созданный_байди существует в таблице Users на вкладке?

1 Ответ

1 голос
/ 16 августа 2011

В настоящее время это невозможно.

Единственный вид ссылочной целостности, который в настоящее время может помочь в поддержке Zend, - это каскадное удаление и каскадные обновления. Пример того, когда это будет использоваться, как указано в руководстве, - это использование табличного типа MyISAM MySql вместо InnoDB.

Проверка внешнего ключа не осуществляется Zend. Обычно, однако, вы можете поместить ограничения в БД, которые позаботятся об этом.

Если ваша среда не позволяет этого, то в идеале вы могли бы расширить среду Zend для выполнения этих проверок, хотя выполнение проверок из PHP будет дорогостоящим.

...