0
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 作为外键。所以在logs表中有3个外键game_id,team_id,user_id。

我应该如何命名 FK 列以及 Datamapper 如何知道哪个 FK 引用了具有相同后缀 _id 的表?

4

1 回答 1

1

首先,您需要确保您的关系配置正确。这意味着在两个相关模型中定义关系 (http://datamapper.wanwizard.eu/pages/settingrelations.html)。

所以你的 Log 模型应该是这样的:

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

然后,日志表只需要列“game_id”、“team_id”和“user_id”——DataMapper 将知道在哪里查找以填充相关对象。

It's all explained clearly in the docs (look under 'In-Table Foreign Keys'): http://datamapper.wanwizard.eu/pages/database.html

于 2012-08-31T14:40:26.850 回答