zend框架表关系,referenceMap& dependentTables

时间:2012-01-09 11:45:21

标签: php zend-framework zend-db zend-db-table

我是zend框架的新手,我正在努力理解表关系是如何工作的。我有两个表,我正在尝试链接它们并将它们的数据放在列表中。

CREATE TABLE  `relationship` (
  `relationship_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `relationship_name` varchar(45) NOT NULL,
  `relationship_group_id` int(10) unsigned NOT NULL,
  `display` int(10) unsigned NOT NULL DEFAULT '1',
  PRIMARY KEY (`relationship_id`),
   KEY `FK_relationship_1` (`relationship_group_id`),
  CONSTRAINT `FK_relationship_1` FOREIGN KEY (`relationship_group_id`) REFERENCES     `relationship_group` (`relationship_group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE  `relationship_group` (
  `relationship_group_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `relationship_group_name` varchar(45) NOT NULL,
  `display` int(10) unsigned NOT NULL DEFAULT '1',
  PRIMARY KEY (`relationship_group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

在我的关系表课程中,我有:

class Relationship_Table extends Zend_Db_Table_Abstract
{
    protected $_rowClass = 'Relationship';
    protected $_name = 'relationship';

在我的关系组表类中,我有:

class Relationship_Group_Table extends Zend_Db_Table_Abstract
{
protected $_name = 'relationship_group';
protected $_rowClass = ' Relationship_Group';

我不确定我的$ _referenceMap和$ _dependentTables应该说什么,如果我需要在两个类中说明它们或只是一个?

另外,如何从关系表中获取包含相应关系组数据的列表。

感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

这是关于桌子关系的非常好的入门读物。
Mat McCormisck on Table relationships in Zend Framework

您问题的实际答案是:

  • 这取决于你需要完成什么,以及你想如何实现它。

答案 1 :(得分:0)

在您的情况下不需要

$_dependentTables(使用InnonDB)。

  

Zend References

     

注意:如果在RDBMS服务器中使用参照完整性约束来实现级联操作,则跳过$_dependentTables的声明

您的$_referenceMap应该将从属表中的FOREIGN KEY链接到父表中的PRIMARY KEY,并且仅在从属表中需要它。

剩下的就像RockyFord在他的链接中所建议的那样:)。