我创建了一个拥有自己的表faces
的模块。此外,模块设置会添加face_id
属性销售/订单以连接它们:
$installer = $this;
$installer->startSetup();
$installer->run("
CREATE TABLE `{$this->getTable('faces')}` (
`face_id` int(11) NOT NULL auto_increment,
`title` varchar(255) NOT NULL,
PRIMARY KEY (`face_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
");
if (Mage::helper('faces')->isSalesFlat()) { // 1.4
// TBD
} else { // 1.3
$eav = new Mage_Eav_Model_Entity_Setup('sales_setup');
$eav->addAttribute('order', 'face_id', array('type' => 'int'));
}
$installer->endSetup();
这在我的1.3.2.4安装中运行良好。但是我希望order
和face
之间存在关系。也就是说,我希望能够做到这样的事情:
$face = $order->getFace(); // This method doesn't exist right now
$faceTitle = $face->getTitle();
另外,我想添加约束。我会将它们直接添加到CREATE TABLE
SQL中,但我想知道如果我使用某种内置方法来创建这种关系,它们是否会被自动添加。
答案 0 :(得分:1)
不,它们不会自动添加。您可以选择将此信息存储在订单表中(通过直接修改它以在设置期间添加该列),或者您可以创建一个表来加入这两个(基本上为order_face
)。前者的优点是它允许您将数据拉入订单并至少自动获得$ order-> getFaceId()。通过快速更改模型,您可以自动加载该面。
希望有所帮助!
谢谢, 乔