Votre avis sur la structure de ma BSD

Mammouth du PHP | 531 Messages

26 sept. 2007, 16:42

Bonjour,

Etant débutant en PHP/Myql je voudrais avoir votre avis. J'ai un projet de conception d'un site dédié aux jeux vidéos. On y trouverais donc de l'actualité, des fiches jeux, des screenshoots et des test. Mais on en est pas encore là :lol:

Je commence à réfléchir aux besoins pour bien construire ma base :

L'idée c'est que lorsque le visiteur lit une news en rapport avec un jeux, il trouve aussi toutes les autres news en rapport avec ce jeu, la fiche de présentation, les screenchoots et le test, bref tout sans avoir besoin de chercher.
Mais par exemple, lorsqu'il s'agit d'un news dont le sujet est autre qu'un jeu, comme par exemple une news sur le site ou sur du matériel, évidement on a ni test ni screenshoot.

Donc voilà ce que j'ai trouvé de mieux pour l'instant pour arriver à ce résultat :
Il y aurait donc une table intitulée "motsclés", dans lequel on aurait un id et un nom.
Si je veut faire une news sur Crisis, je rentre dabord une nouvelle clé "Crisis" si elle n'existe pas. Ensuite je fait ma news en choisissant la clé "Crisis". A l'enregistrement dans la table "news" j'ai un champ id_motclé qui prend la valeur correspondante de la table "motclés".
Et cela est valable pour tout autre contenu, ainsi ça me permet d'afficher tout les champs de toutes les tables contenant cet id.

Voilà j'espère avoir été plus ou moins clair et que c'est une bonne solution ?

Bonne journée :wink:

Eléphanteau du PHP | 19 Messages

27 sept. 2007, 16:14

Salut,

Une jointure de tables pourrait être effectivement une bonne idée.
Je n'ai pas exactement tout compris à ta démarche, mais voici (en gros) ce que je ferais:
Une table "games" avec un champ "id" (auto_increment, primary_key) puis tout ce qui va avec le jeux (test, présentation etc....).
Puis une table "news" avec un champ "id_game" qui fera la jointure avec la table "games".
Si ta news a un rapport avec un jeu tu renseigne le champ "id_game" sinon tu ne mets
rien. Ensuite lors de l'affichage, un if else déterminera si le script doit lancer
une requête dans la table "games" ou non.
Je suis allé vite et y a surement des truc à revoir mais dans l'ensemble ce serait ça l'idée.
Si ça peut t'aider :wink: