2012-10-29 20 views
1

我正在专业体育统计网站上工作,我正在寻找关于如何设置我的表以及命名我的类(模型/控制器)的建议。我应该如何在CakePHP中命名我的表/类

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

会是有意义的设置与前缀,如nba_playersnba_Statsnfl_playersnfl_Statsmlb_playersmlb_Stats表?

会更有意义,只是让他们作为独立的数据库,如NBA.playersNBA.statsNFL.playersNFL.stats等等

这使我对我建立我的课的下一个问题。

我想确保我设置了所有CakePHP约定。在我看来,如果我使用前面提到的前缀方法,我会将我的控制器命名为NbaPlayersController,而我的模型将是。我需要使用$tablePrefix这里概述=>http://book.cakephp.org/1.3/view/1060/tablePrefix?我猜我不会,但我不是100%肯定。

如果我用后者的方式做了单独的数据库,我猜我必须有单独的应用程序,除非有另一种方法来做到这一点,我不知道。另外,NBA,NFL和MLB的数据是如此不同,并且会有很多不同的统计类别,所以我不想考虑将它们组合成单个表格,例如playersstats,然后再将它们组合成单独的表格,例如和stats一个league_type_id来确定我想要的信息。我认为这样做太复杂了,为数据库添加了很多额外的空间,这些空间是不必要的。

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

谢谢!

回答

3

不需要多个数据库,也不需要为不同的玩家类型分开表格 - 他们都是“玩家”。只需保持统计数据在不同的表格中。

你的结构应该是这个样子:

表:

  • 球员
  • 联赛
  • leagues_players
  • mlb_stats
  • nfl_stats
  • nba_stats

型号/协会:

  • 球员hasAndBelongsToMany联赛
  • 联赛hasAndBelongsToMany球员
  • MlbStat属于关联球员
  • NflStat属于关联球员
  • NbaStat属于关联球员
  • 球员hasOne MlbStat
  • 球员hasOne NflStat
  • 球员hasOne NbaStat
+0

如上所述,我真的不希望来自不同联赛的球员组合成各种原因相同的表。但就我想如何命名我的表格和类而言,它看起来像是在正确的轨道上。 – bigmike7801

+2

@ bigmike7801 - 国际海事组织没有理由为每个联盟配备不同的“球员”牌桌,因为他们都是“球员”,并且将具有相同的精确表格结构(或者他们应该),更不用说了球员可以在不止一个联赛中,即使这很少见。你的STATS是不同的 - 因此每组统计数据都有不同的表格。 (你之所以选择不希望表格分裂球员/统计数据是因为“大量不同的统计类别等等” - 因此我的解决方案将此考虑在内。) – Dave

相关问题