gpt4 book ai didi

perl - 如何在 Perl 中设置与 DBIx::Class 的多主列 1:n 关系?

转载 作者:行者123 更新时间:2023-12-04 04:45:19 25 4
gpt4 key购买 nike

我在写 DBIx::Class我自己使用 DBIx::Class::Candy 的模式类.目前,我在复杂数据库设计的某些部分遇到了困难。

我已经使用 DBIx::Class::Relationship 设置了大部分类作为 1:n 建模的模板, n:1n:m关系(只有一个主键)。一切都很好,但我没有得到这种特殊的关系。
Game_Usersn:m两个不相关表之间的关系表GamesUsers . Turns另一方面是一个“普通”表,它存储游戏和用户组合的单轮。

  • Game_Users包名是 MyApp::Schema::Result::GameUser
  • Turns包名是 MyApp::Schema::Result::Turn

  • 如何在 Perl 中设置这种多主列 1:n 与 DBIx::Class 的关系?

    我想指出的是,即使我在这里展示了一个具体的例子,很多观众可能会对这个通用问题感兴趣。

    Database desing: Game_Users to Turns relation

    最佳答案

    您可以简单地提供带有连接表达式的 hashref 到 has_manybelongs_to .在 MyApp::Schema::Result::GameUser :

    __PACKAGE__->has_many(turns => 'MyApp::Schema::Result::Turn', {
    'foreign.game_id' => 'self.game_id',
    'foreign.user_id' => 'self.user_id',
    });

    MyApp::Schema::Result::Turn :
    __PACKAGE__->belongs_to(game_user => 'MyApp::Schema::Result::GameUser', {
    'foreign.game_id' => 'self.game_id',
    'foreign.user_id' => 'self.user_id',
    });

    关于perl - 如何在 Perl 中设置与 DBIx::Class 的多主列 1:n 关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18290103/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com