我应该如何在CakePHP中命名我的表/类

时间:2012-10-29 15:15:36

标签: cakephp naming-conventions cakephp-2.0 cakephp-appmodel

我正在开发一个专业的体育统计网站,我正在寻找有关如何设置我的表以及命名我的类(模型/控制器)的建议。

比方说,我正在使用来自NBA,NFL和MLB的数据。

使用nba_playersnba_Statsnfl_playersnfl_Statsmlb_playersmlb_Stats等前缀设置表格是否合理? ?

将它们作为单独的数据库更有意义,例如NBA.playersNBA.statsNFL.playersNFL.stats等......

这引出了我下一个设置课程的问题。

我想确保在设置CakePHP约定时考虑到所有内容。在我看来,如果我使用上面建议的前缀方法,我会将控制器命名为NbaPlayersController,我的模型将是NbaPlayer。我是否需要使用此处概述的$tablePrefix => http://book.cakephp.org/1.3/view/1060/tablePrefix?我猜我不会,但我不是100%肯定。

如果我使用单独的数据库以后一种方式做事,我猜我必须有单独的应用程序,除非有其他方法可以做到我不知道。

此外,NBA,NFL和MLB的数据是如此不同,将有大量不同的统计类别,因此我不想考虑将它们组合到单独的表格中,例如players和{ {1}}然后让stats确定我想要哪个联赛信息。我认为这种方式太过简单,并且为db添加了大量额外的空间,这是不必要的。

所以我想我的问题是,我在上面列出了在Cake中做事的首选方法之一,还是我应该做的另一种方法,我没有在上面列出?

谢谢!

1 个答案:

答案 0 :(得分:3)

不需要多个数据库,也不需要为不同的玩家类型设置单独的表 - 他们仍然是“玩家”。只需将统计数据保存在不同的表格中即可。

您的结构应如下所示:

<强>表格

  • 玩家
  • 联赛
  • leagues_players
  • mlb_stats
  • nfl_stats
  • nba_stats

模特/协会:

  • Player hasAndBelongsToMany League
  • League hasAndBelongsToMany Player
  • MlbStat belongsTo Player
  • NflStat belongsTo Player
  • NbaStat belongsTo Player
  • 玩家有一个MlbStat
  • 玩家有一个NflStat
  • 玩家有一个NbaStat