仕様:CodeigniterFramework上に構築されたmySQLを備えたPHP5。
私はと呼ばれるデータベーステーブルを持っていて、それからとgame
のような特定のテーブルをスポーツします。これらのスポーツ固有のテーブルには、テーブルにリンクするフィールドがあります。対応するクラスと/があり、どちらも。を拡張します。soccerGame
footballGame
gameId
game
game
soccerGame
footballGame
game
ユーザーに表示するゲーム情報を検索すると、2つのテーブルを動的にリンクする方法がわかりません。1回のクエリですべての情報を取得できるかどうか知りたいです。game
問題は、スポーツ名を把握するために、最初にテーブルを照会する必要があることです。
それが不可能な場合、私の次の考えは2つのクエリでそれを行うことです。ゲームテーブルに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はストアドプロシージャを介してのみ可能であるように思われますが、これは私が今はよく理解していないことです。そして、それらを使っても、それはまだ少し厄介です。今、私は2つのクエリルートに行きます。1つはスポーツ名を取得し、次にスイッチを使用して適切なモデルを取得します。
game
PHP側から見ると、オブジェクトを取得して、たとえばmyに渡してから、元のの子であるオブジェクトsoccer_game_model
を返してもらうのは少しばかげているようです。それはどのように行われなければならないのですか?または、ここでOOの観点から何かが欠けていますか?soccer_game
game