规格:PHP 5 和基于 Codeigniter 框架构建的 mySQL。
我有一个名为的数据库表game
,然后是特定的表,例如soccerGame
和footballGame
。这些运动特定的表格有一个gameId
链接回表格的字段game
。我有相应的类game
和soccerGame
/ footballGame
,它们都扩展了game
.
当我查找要显示给用户的游戏信息时,我无法弄清楚如何动态链接这两个表。我很好奇是否可以通过一次查询获得所有信息。问题是,我需要先查询game
表才能找出运动名称。
如果那不可能,我的下一个想法是用两个查询来完成。让我game_model
查询比赛表,然后根据运动名称,调用适当的运动特定模型(即soccer_game_model
)并获取运动特定信息。
我还将game
对象传递到 中soccer_model
,然后soccer_model
使用该对象为我构建一个soccerGame
对象。这对我来说似乎有点傻,因为我正在构建父对象,然后将其提供给扩展类以创建一个全新的对象?
想法?
谢谢您的帮助。
编辑:
游戏桌
gameId
sport (soccer, basketball, football, etc)
date
other data
足球游戏桌
soccerGameId
gameId
soccer specific information
足球游戏桌
footballGameId
gameId
football specific information
等等其他运动
所以我需要知道这项运动是什么,然后才能决定我需要从哪个运动特定表中提取信息。
更新:
感谢大家的投入。似乎动态 SQL 只能通过存储过程实现,我现在不太熟悉。即使有他们,它仍然有点混乱。现在我将走两条查询路线,一条获取运动名称,然后切换获取正确的型号。
game
从现在的 PHP 方面来看,获取一个对象,将其传递给 my soccer_game_model
,然后让它返回我一个soccer_game
对象,它是原始的子对象,这似乎有点愚蠢game
。必须这样做吗?或者我在这里从面向对象的角度错过了什么?