3

如何进行查询:

$name = $this->_dbTable->info('name');
$result = $this->_dbTable->select()->from($name)->setIntegrityCheck(false);
$result->join(array('t' => "$name.tipo")), "t.id = $name.id");

其中 '$name.tipo' 是连接的表名。

4

1 回答 1

2

您不能每行加入不同的表,具体取决于tipo. SQL 要求在准备查询时修复表,当发现从给定列提取的数据值时,表不能更改。

您的设计称为Polymorphic Associations,它是一种非关系设计。在 SQL 中执行此操作非常尴尬。

请参阅我的演示文稿Practical Object Oriented Models In SQL了解一些替代方案。

于 2013-03-12T00:59:30.840 回答