【发布时间】:2013-03-13 17:52:18
【问题描述】:
规范: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 只能通过存储过程实现,我现在不太熟悉。即使有他们,它仍然有点混乱。现在我将走两条查询路线,一条获取运动名称,然后切换获取正确的型号。
现在从 PHP 方面来看,获取一个 game 对象,将其传递给我的 soccer_game_model,然后让它返回一个 soccer_game 对象,这似乎有点愚蠢。原始game 的子代。必须这样做吗?还是我在这里从 OO 的角度遗漏了什么?
【问题讨论】:
-
我无法理解问题和设置。你能发布你的表的结构吗?
标签: php mysql oop codeigniter