Aide pour agencer les tables de ma BDD

Répondre
Benamour Jr
le 23/03/2010 à 13:43
Benamour Jr
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 :)
Amery
le 23/03/2010 à 14:25
Amery
Une idée serait de créer une table principale "articles" contenant les articles de presse avec tous les champs décrivant l'article : id, titre, contenu, auteur, date, catégorie, etc.

Ensuite, une table supplémentaire "tags" avec 2 champs : "tag" et "article_id".

A l'insertion d'un article, tu insers autant de tags que tu souhaites en indiquant à chaque insertion le couple (tag,article_id), où "tag" peut être ce que tu veux : France, Nicolas Sarkozy, etc.

Ensuite, lorsqu'on lance une recherche, il suffit de faire la recherche par mot clé uniquement dans la table "tags" et de récupérer l'article_id correspondant...

Ca te permettrait aussi de faire un nuage de tags comme on en voit beaucoup.

Voilà un début de structure...
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours