Как назвать поле один ко многим в Datamapper + Codeiginter

class Games{
    var $has_many = array('gameSetting','team','log');
}

class GameSetting {}

class Team{
    var $has_many = array('user','log');
}
class User {
    var $has_many = array('log');
}

class Log {
}

Согласно официальному документу, без объединения таблиц я должен создать суффикс _id в качестве внешнего ключа. Итак, в таблице журналов есть 3 внешних ключа game_id, team_id, user_id.

Как мне назвать столбец FK и как Datamapper узнать, какой FK является ссылкой на какую таблицу с тем же суффиксом _id?


person Runicer    schedule 14.08.2012    source источник


Ответы (1)


Прежде всего, вам нужно убедиться, что ваши отношения правильно настроены. Это означает определение отношений в обе рассматриваемых моделях (http://datamapper.wanwizard.eu/pages/settingrelations.html).

Итак, ваша модель журнала должна выглядеть так:

class Log extends DataMapper {
    var $has_one = array('game','team','user');
}

Тогда таблице logs просто нужны столбцы game_id, team_id и user_id — DataMapper будет знать, где искать, чтобы заполнить связанные объекты.

Все это четко объяснено в документации (см. «Внешние ключи в таблице»): http://datamapper.wanwizard.eu/pages/database.html

person froddd    schedule 31.08.2012