specs: PHP 5 avec MySQL construit sur Codeigniter Framework.Comment structurer un appel de base de données php?
J'ai une table de base de données appelée game
et puis des tableaux spécifiques au sport comme soccerGame
et footballGame
. ces tables spécifiques au sport ont un champ gameId
qui renvoie au tableau game
. J'ai les classes correspondantes game
et soccerGame
/footballGame
, qui s'étendent tous les deux game
.
Lorsque je consulte les informations de jeu à afficher à l'attention de l'utilisateur, je n'arrive pas à trouver comment relier dynamiquement les deux tables. Je suis curieux de savoir s'il est possible d'obtenir toutes les informations avec une seule requête. Le problème est, j'ai besoin d'interroger la table game
d'abord pour comprendre le nom du sport.
Si ce n'est pas possible, ma prochaine pensée est de le faire avec deux requêtes. demandez à ma game_model
d'interroger la table de jeu, puis, en fonction du nom du sport, appelez le modèle spécifique au sport approprié (c'est-à-dire soccer_game_model
) et obtenez les informations spécifiques au sport.
Je voudrais aussi passer l'objet game
dans le soccer_model
et le soccer_model
utiliseraient cet objet pour me construire un objet soccerGame
. Cela me semble un peu stupide parce que je construis l'objet parent et que je le donne à la classe qui s'étend pour créer un nouvel objet.
pensées?
merci pour l'aide.
EDIT:
table de jeu
gameId
sport (soccer, basketball, football, etc)
date
other data
table soccerGame
soccerGameId
gameId
soccer specific information
table footballGame
footballGameId
gameId
football specific information
et ainsi de suite pour d'autres sports
J'ai donc besoin de savoir ce qu'est le sport avant de pouvoir décider quelle table spécifique au sport je dois utiliser.
MISE À JOUR:
Merci à tous pour l'entrée. Il semble que le SQL dynamique n'est possible que grâce à des procédures stockées, quelque chose que je ne connais pas très bien maintenant. Et même avec eux, c'est toujours un peu brouillon. En ce moment, je vais aller sur la route de deux requêtes, l'un pour obtenir le nom du sport, puis un interrupteur pour obtenir le bon modèle.
Du côté PHP des choses maintenant, il semble un peu ridicule pour obtenir un objet game
, passer à, disons, mon soccer_game_model
, et alors que je retourne un objet soccer_game
, qui est un enfant du game
d'origine . Est-ce ainsi que cela doit être fait? ou est-ce que je manque quelque chose d'une perspective OO ici?
Je n'arrive pas à comprendre le problème et la configuration. Pouvez-vous poster la structure de vos tables? – SomeSillyName