{MySQL} Attribuer plusieurs mots-clés
fred6
Messages postés
4
Statut
Membre
-
Yoan Messages postés 11905 Statut Modérateur -
Yoan Messages postés 11905 Statut Modérateur -
Bonjour,
Je débute avec MySql sous Apache. Je veux créer une base pour gérer mes documents. J'ai donc créé une table qui identifie chaque document et une table qui répertorie les mots-clés qui décrivent ces documents. Je voudrais pouvoir attribuer plusieurs mots-clés à chaque document, et, d'autre part, rédiger la requête qui va me permettre de sélectionner les documents qui contiennent plusieurs mots-clés ? Comment faire ? Merci à l'avance de m'aider.
Je débute avec MySql sous Apache. Je veux créer une base pour gérer mes documents. J'ai donc créé une table qui identifie chaque document et une table qui répertorie les mots-clés qui décrivent ces documents. Je voudrais pouvoir attribuer plusieurs mots-clés à chaque document, et, d'autre part, rédiger la requête qui va me permettre de sélectionner les documents qui contiennent plusieurs mots-clés ? Comment faire ? Merci à l'avance de m'aider.
A voir également:
- {MySQL} Attribuer plusieurs mots-clés
- Cles windows 10 - Guide
- Retrouver un film avec des mots - Télécharger - Divers TV & Vidéo
- Mysql community server - Télécharger - Bases de données
- Chercheur de mots - Télécharger - Études & Formations
- Trousseau de clés iphone - Guide
1 réponse
Le schéma relationnel pourrait ressembler à ça :
Document(NomDoc, Chemin)
Mot_Cle(Document(NomDoc), Mot_Cle)
La clé primaire de la table Document est le champs NomDoc, la clé primaire de la table Mot_Cle sont les deux champs. Et le champs NomDoc de la table Mot_Cle est une clé étrangère vers le champs du même nom de Document.
Le fait de prendre les deux champs pour la clé primaire de Mot_Cle fait que tu peux attribuer plusieurs mot-clés à un même document :
Si tu as par exemple 2 mots clé et que tu veux sélectionner les documents qui correspondent à ces 3 mots-clé en même temps, utilise par exemple des requêtes imbriquées, et tu en fais une de plus à chaque mot-clé supplémentaire :
Document(NomDoc, Chemin)
Mot_Cle(Document(NomDoc), Mot_Cle)
La clé primaire de la table Document est le champs NomDoc, la clé primaire de la table Mot_Cle sont les deux champs. Et le champs NomDoc de la table Mot_Cle est une clé étrangère vers le champs du même nom de Document.
Le fait de prendre les deux champs pour la clé primaire de Mot_Cle fait que tu peux attribuer plusieurs mot-clés à un même document :
La_conscience.doc, philosophie La_conscience.doc, conscience La_conscience.doc, préconscient La_conscience.doc, inconscient La_théorie_du_chaos, chaos Etude_de_la_nature.pdf, nature Etude_de_la_nature.pdf, faune Etude_de_la_nature.pdf, flore ....
Si tu as par exemple 2 mots clé et que tu veux sélectionner les documents qui correspondent à ces 3 mots-clé en même temps, utilise par exemple des requêtes imbriquées, et tu en fais une de plus à chaque mot-clé supplémentaire :
SELECT NomDoc, Chemin
FROM Document
WHERE NomDoc IN (
SELECT NomDoc
FROM Mot_Cle
WHERE Mot_Cle='Mon_mot_clé'
AND NowDoc IN (
SELECT NomDoc
FROM Mot_Cle
WHERE Mot_Cle='Mon_second_mot_clé'
)
)