Соединение моделей вместе - PullRequest
0 голосов
/ 08 ноября 2011

У меня есть три таблицы в базе данных:

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

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

People
******
id
first_name
last_name

У каждого художника может быть много произведений.

У каждого художника только один человек.

У каждого товара есть только один художник.

Как правильно установить ассоциации между моделями для этих трех таблиц?

Ответы [ 2 ]

1 голос
/ 08 ноября 2011

Художник по продуктам: один ко многим
Продукт по исполнителю: один к одному
Художник по человеку: один к одному

Например, 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

0 голосов
/ 08 ноября 2011

Я думаю, это что-то вроде:

Продукт имеет Художника:

<?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');

}
...