将模型链接在一起

时间:2011-11-08 15:28:31

标签: php cakephp cakephp-appmodel

我在数据库中有以下三个表:

Products
********
id
title
artist_id

Artists
*******
id
profile
rating
person_id

People
******
id
first_name
last_name

每位艺术家都可以拥有很多产品。

每位艺术家只有一个人。

每件产品只有一位艺术家。

在这三个表的模型之间建立正确的关联是什么?

2 个答案:

答案 0 :(得分:1)

产品艺术家:一对多 艺术家的产品:一对一 艺术家与人:一对一

例如,Artist模型:

<?php
class Artist extends AppModel {
    var $name = 'Artist';

    var $belongsTo = array(
        'Person' => array(
            'className' => 'Person',
            'foreignKey' => 'person_id'
        )
    );

    var $hasMany = array(
        'Product' => array(
            'className' => 'Product',
            'foreignKey' => 'product_id'
        )
    );
}
?>

<强> DOC

答案 1 :(得分:0)

我猜它是这样的:

产品有艺术家:

<?php
class Product extends AppModel {
    var $hasOne = array('Artist');
}

艺术家属于一个人,拥有许多产品。

<?php
class Artist extends AppModel {
    var $name = 'Artist';

    var $belongsTo = array('Person');

    var $hasMany = array('Product');
}

人有艺术家。

<?php
class Person extends AppModel {

    var $hasOne = array('Artist');

}