gpt4 book ai didi

mysql - CakePHP mysql数据库命名约定问题

转载 作者:行者123 更新时间:2023-11-29 02:06:43 25 4
gpt4 key购买 nike

首先:我已经阅读了 CakePHP cookbook 中的命名约定规则,所以请不要指点我 :) 我可能理解有误,如果是的话请纠正我 ;)

我遇到的问题是我有表格:

  • 项目
  • 任务

然后我有了 table :

  • item_has_quest_requirements
  • quest_has_item_requirements
  • quest_has_item_rewards
  • quest_has_item_recommends

这只是 HABTM 表,具有连接这 2 个表的 2 个主键。现在,其中一些也有自己的特定列,这就是为什么我没有将它们放在同一个表中。例如,item_has_quest_requirements 只有键,但 quest_has_item_requirements 还有 amount 字段以及奖励和推荐。

但是,如果我遵循 CakePHP 命名约定,我不应该使用复合主键,如果我想将 2 个表连接在一起作为 HABTM 表,我应该按表名的字母顺序命名表。这意味着据我所知,这些表将全部变成:items_quests 表,这是不可能的。

那么唯一的方法就是创建全新的额外表,例如:quest_requirements 将包含 amount 列,然后使 HABTM 表类似于:items_quest_requirements

这就是我一直在思考的问题,所以您能告诉我什么是最好的方法吗?

最佳答案

当您在两个表之间有多个 关联时,没有命名约定。在这种情况下,您必须在模型中手动指定涉及的表,请参阅 http://book.cakephp.org/view/1039/Associations-Linking-Models-Together#hasAndBelongsToMany-HABTM-1044了解详情。

但是,您提到一些连接表将包含额外的列。对于这种情况,使用 Join Models 可能是更好的方法。 (也称为“hasMany through”)而不是 HABTM 关联。

关于mysql - CakePHP mysql数据库命名约定问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4655410/

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