Aide pour agencer les tables de ma base de donnée

Eléphant du PHP | 57 Messages

23 mars 2010, 14:39

Bonjour,
Je suis en train de réfléchir à la structure de ma base de donnée et j'ai un peu de mal... J'espère que l'un de vous prendra le temps de m'éclaire un tantinet :)

J'ai une table "article_presse" destinée à stocker... des articles de presse. Je souhaiterai pouvoir associer chaque article de presse à différents acteurs (pays, individu ou organisation). Au lieu d'utiliser pour cela un champ "acteur" où je renseignerais tous les acteurs séparés par des virgules (ex: France, Nicolas Sarkozy) je me suis dit (mais peut-être que mon raisonnement n'est pas bon ?) que je devrais plutôt renseigner un champ "id_acteur" qui permettrait d'identifier un ou plusieurs acteurs stocké(s) dans une table "acteur".

Le problème c'est que par la suite, je projète de développer un moteur de recherche permettant de trouver facilement un article de presse en renseignant tel ou tel acteur. Mais comment faire pour que mon champ "id_acteur" puisse comporter plusieurs id d'acteurs ? Car un article de presse sera très souvent lié à plusieurs acteurs. Quelles sont les différents paramètres que je dois appliquer à ce champ ? Faut-il l'indexer ? Et comment se passera la recherche ? Car les internautes vont par exemple taper "Herman Van Rompuy" mais dans la table des articles de presse il n'y aura que des numéros dans le champ "id_acteur"... ?

Bref, je suis un peu paumé... Merci à ceux qui prendront le temps de me conseiller :)

ViPHP
ViPHP | 1024 Messages

23 mars 2010, 14:52

Hello,

Il faut créer une table intermédiaire pour faire le lien entre les tables article_presse et acteur.

Cette table comportera les clés des 2 tables à relier : id_article_presse et id_acteur

En faisant des jointures entre les tables, tu pourras retrouver :
- tous les acteurs pour un articles donné
- tous les articles liés à un acteur

A+

Pascal

Eléphant du PHP | 57 Messages

23 mars 2010, 15:33

Merci, j'avais pas pensé aux tables de jointure :)