|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
Bonjour,
J'ai besoin de vos lumières afin de m'aider à construire un système permettant d'accrocher des mots clés à un article. Il faut par-contre prendre en compte la modélisation suivante :
Nous avons donc une table "article_avoir_mot_cle" qui pioche dans les mots clés disponibles. A ce jour, j'ai 1200 mots clés et j'aimerais être capable de créer une interface permettant à l'utilisateur de piocher dans ces mots clés (afin d'éviter le doublonnage) mais aussi lui laisser l'accès à la création de nouveaux mots clés (tout en vérifiant que ces derniers ne sont pas déjà présents) .Comment imagineriez-vous cette interface pour qu'elle soit la plus intuitive possible ? N.B : Au départ, je gérai les mots clés par article (avec une virgule entre les mots clés) mais je me suis fait tirer dessus à boulet rouge du fait de cette mauvaise modélisation. Par avance merci pour votre aide.
|
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() ![]() Clément Développeur informatique Inscription : décembre 2006 Messages : 213 ![]() |
Niveau base de données, tu as typiquement une relation * - *, c'est à dire plusieurs à plusieurs.
Un mot-clé peut appartenir à plusieurs articles, et un article peut avoir plusieurs mots-clés. Dans ce cas, on a généralement besoin de 3 tables en base de données.
Un mot-clé appartient à un article si (et seulement si), une ligne est présente dans ta table liaison, avec les identifiants du mot-clé et de l'article. Exemple: Tu as 2 article : A1, A2 (dans ta table article) Tu as 3 mots-clés : M1, M2, M3 (dans ta table des mot-clé). Si l'article A1 contient M2 et M3, et l'article A2 contient M2, ta table de liaison aura la forme suivante : -------------------------------------- identifiant article | identifiant_mot_clé -------------------------------------- A1 | M2 A1 | M3 A2 | M2 -------------------------------------- Maintenant au niveau de l'interface, il y a beaucoup de possibilités. Difficile de te donner des pistes comme ça, avec si peu de contraintes. Voilà tout de même une possibilité, simple (mais pas forcément super) : Une page avec la liste des articles : leur titre, et éventuellement les mots-clés existant pour cet article. A coté de chaque mot-clé, un bouton/lien pour "saisir les mots-clés". Lorsque l'on clique dessus, on arrive sur une nouvelle page. La liste des mots-clés de l'article apparait, et il y a un input texte "mot clé à ajouter". L'utilisateur saisit un mot-clé, et celui-ci s'ajoute à la liste lorsqu'il clique sur entrée, ou sur un bouton de validation. Eventuellement, si le mot-clé n'existe pas déjà, il peut être ajouté automatiquement dans ta table mot-clé, ou bien après confirmation de l'utilisateur. RQ : vu le nombre de mots-clés que tu as, utiliser un autocomplete sur l'input texte des mots-clés pourrait être une bonne chose. Si tu as des questions... Cela dit, étant donné la grande quantité de mots-clés que tu as, je pense qu'un auto |
|
|
00
|
|
|
#3 |
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
Bonjour et merci pour cette réponse,
Effectivement, la modélisation est la suivante : ![]() Seulement, j'aimerais pouvoir affecter les mots clés lors de la création de l'article et en ajouter en cas de modification de l'article. Une bonne option serait d'avoir un champ de recherche des mots clés par auto-complétion et ajout de celui sélectionné par un bouton ou la touche entrée. Si le mot clé n'est pas trouvé, le même bouton ajouterai le mot clé dans la liste de sélection mais celui-ci serait ajouté en base. Bref, cela paraît difficile en php, si quelqu'un veut m'aider ce serait sympa. Si quelqu'un à déjà développer un système similaire et qu'il souhaite partager, merci de se manifester ! ![]() ---------- Sinon, plus simple, on pourrait juste laisser un textarea et demander à l'utilisateur de mettre ses mots clés avec une virgule entre chaque mot clé. Ensuite, on testerait l'existence des mots clés et on insérerait les nouveaux mots clés puis lierait les nouveaux et ceux déjà présents en base. |
|
|
00
|
|
|
#4 | |
|
Membre confirmé
![]() ![]() Clément Développeur informatique Inscription : décembre 2006 Messages : 213 ![]() |
Citation:
C'est une bonne structure de données, et elle doit te permettre de faire tout ce que tu veux. Si tu veux ajouter des mots-clés lors de la création d'un article, tu peux le faire en plusieurs requêtes SQL exécutées l'une à la suite de l'autre. Un champ contenant les mots-clés dans la table article, séparés par des virgules, est effectivement une mauvaise modélisation. Ton problème ne me semble pas être lié à la modélisation, mais davantage à l'interface. C'est à toi de voir ce que tu veux, je ne pense pas que quelqu'un ici te dira : "il faut faire ça", en te donnant un code source existant (en général, ce n'est pas en "pompant" que l'on apprend). Je pense que c'est à toi de décider comment tu veux faire. Ce que tu as dit dans ton précédent post est tout à fait réalisable. Commence à coder, et si tu as des problèmes, n'hésite pas à revenir avec un exemple de code source. |
|
|
|
00
|
|
|
#5 |
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
Oui la modélisation est figée
C'est plus le système utilisateur qui me pose des soucis. Je vais essayer de produire quelque et revient vers vous si j'ai des soucis.
|
|
|
00
|
|
|
#6 | ||
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
Bonjour,
Je me suis inspiré du code suivant et j'ai produit mon code pour intégrer des nouveaux mots clés ou les lier s'ils existent déjà. Code :
Par avance merci pour votre aide !
|
||
|
|
00
|
|
|
#7 | ||
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
Bonsoir,
Personne pour me filer un coup de main ?Déjà, je pense qu'il faut requêter l'identifiant du mot clé : Code :
Merci par avance. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com