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 を作成する必要があります。したがって、ログ テーブルには、game_id、team_id、user_id の 3 つの外部キーがあります。

FK 列にどのように名前を付ける必要があり、どの FK が同じ接尾辞 _id を持つどのテーブルへの参照であるかを Datamapper がどのように知ることができますか?

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 は、関連するオブジェクトを入力するためにどこを参照すればよいかを認識します。

それはすべてドキュメントで明確に説明されています(「テーブル内の外部キー」の下を見てください):http://datamapper.wanwizard.eu/pages/database.html

于 2012-08-31T14:40:26.850 に答える