1

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

例如,假设我正在处理来自 NBA、NFL 和 MLB 的数据。

nba_players用, nba_Stats, nfl_players, , nfl_Stats, mlb_players,等前缀设置表是否有意义mlb_Stats

NBA.players将它们作为单独的数据库(例如, NBA.stats,NFL.players等)是否更有意义NFL.stats...

这导致我的下一个问题是设置我的课程。

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

如果我以后一种方式使用单独的数据库,我猜我将不得不拥有单独的应用程序,除非有另一种我不知道的方式来做到这一点。

此外,NBA、NFL 和 MLB 的数据是如此不同,并且会有大量不同的统计类别,因此我不想考虑将它们组合到单独的表格中,例如players然后stats有一个league_type_id来确定我是哪个联赛想要信息。我认为这种方式过于繁琐,并且会为数据库添加大量不必要的额外空间。

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

谢谢!

4

1 回答 1

3

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

您的结构应如下所示:

表:

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

模型/协会:

  • Player hasAndBelongsToMany League
  • 联盟有并且属于许多玩家
  • MlbStat 属于玩家
  • NflStat 属于玩家
  • NbaStat 属于球员
  • 玩家有一个 MlbStat
  • 玩家有一个 NflStat
  • 球员有一个NBA统计
于 2012-10-29T15:53:45.400 回答