database - cakephp 同一张表中的两个外键

标签 database cakephp database-relations

我有一个使用 CakePHP 的锦标赛网站,我需要在其中管理如下详细信息的条件:

两个竞争对手之间会有一场战斗比赛,我需要管理比赛分组和比赛时间表,这里的竞争对手和对手将与竞争对 watch 的外键相同,意味着同一用户将相互对抗,与这种情况不同,我如何将两个相同的字段 (competitor_id) 保存到比赛时间表表中,管理员还可以管理竞争对手的订单,如果某些竞争对手不可用等。

最佳答案

你的问题最后有点困惑,你是想简单地从一个预定的事件和用户(与竞争对手和对手的事件)中创建 2 个关系?如果是这样,这可以通过使用外键扩展日程模型中的关系来实现。

而不是说:

var $hasMany = array('Competitor');

可以扩展设置外键和表名:

var $hasMany = array(
 'Competitor' => array(
        'className' => 'Competitor',
        'foreignKey' => 'competitor_id'
    ),
 'Opponent' => array(
        'className' => 'Competitor',
        'foreignKey' => 'opponent_id'
    )
);

这将为同一模型设置 2 个关系,您可以分别保存它们。 Further reading.

关于database - cakephp 同一张表中的两个外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5257608/

相关文章:

php - CakePHP 2.x 使用 HABTM 连接表中的数据检索/查询

android - 如何在 Room 中处理嵌套关系

c# - 在数据集中查找外键

database - perl 中的 BerkeleyDB 可以处理哈希的哈希(最多 n 个)吗?

mysql - CakePhp mysql原始查询错误

CakePHP、扩展和布局

mysql - mySQL中的外键和NULL

database - 用于文件系统存储组织和复制的 NoSQL?

php - 多个 MySQL 输入

mysql - 对于大约 6kb 的文本,哪种 MySQL 数据类型合适?