Je viens d'apprendre MySQL et je ne suis pas familier avec MySQL. Maintenant, j'ai trois tables comme celle-ci
.Tableau des articles
id | titre | contenu |
---|---|---|
0 | bonjour | monde |
1 | hé | .... |
Formulaire de questions
id | titre | contenu |
---|---|---|
0 | bonjour | monde |
1 | hé | .... |
Tableau des balises
id | nom | avatar |
---|---|---|
1 | Java | .... |
2 | js | .... |
Les deux tables partagent une table de balises. L'avatar de la table de balises est l'avatar de la balise. Chaque balise a son propre avatar ou un avatar par défaut.
Ma question actuelle est de savoir comment associer la table des tags aux deux autres tables Il faut s'assurer que les articles ou sujets puissent être trouvés rapidement en fonction de l'identifiant du tag ?
La première solution à laquelle j'ai pensé était d'ajouter un champ de balises sous le tableau des articles et le tableau des questions. Séparez par des virgules (je ne sais pas si c'est bon ou pas...), et puis j'ai découvert que je ne sais vraiment pas comment chercher... Comment rechercher comme ça... Est-ce que j'utilise like. ..
Tableau des articles
id | titre | contenu | étiquettes |
---|---|---|---|
0 | bonjour | monde | 0,1 |
1 | hé | .... | 2,3,4 |
Formulaire de questions
id | titre | contenu | étiquettes |
---|---|---|---|
0 | bonjour | monde | 1,4 |
1 | hé | .... | 6,3 |
Ensuite, j'ai pensé au deuxième plan, car les structures de la table des articles et de la table des questions sont fondamentalement les mêmes, puis-je les fusionner
?Une combinaison de question et de sujet d'article....
id | titre | contenu | étiquettes | type |
---|---|---|---|---|
0 | bonjour | monde | 1,4 | article |
1 | hé | .... | 6,3 | question |
Alors je pense qu'elle ne devrait pas être fusionnée, n'est-ce pas ? Parce que la base de données n'est pas si grande si elle est séparée. Si je veux juste trouver toutes les questions avec une étiquette de 1, sera-t-il plus rapide d'interroger dans une seule table ?
Puis j'ai pensé à un troisième plan, que diriez-vous de faire un tableau de corrélation ? Est-ce que ce tableau de corrélation a besoin d'un identifiant que je ne comprends pas très bien.. S'il y a un tableau de corrélation, alors les tableaux d'articles et de questions ne le seraient-ils pas ? différent ? Le champ tags est nécessaire.Table des associations
tag_id | |
---|---|
1 | |
6 | |
4 | |
3 |
Tout d'abord, j'ai été ébloui par le tableau d'articles et le tableau de questions que vous m'avez donné... Oubliez ça si la structure est la même, les données sont toujours les mêmes...
Deuxièmement, les balises de solution que vous avez utilisées pour vous entendre au début ne sont pas conseillés... C'est difficile Modifier les balises, et comme vous l'avez dit, c'est difficile d'interroger
Quant à la fusion de la table des articles et de la table des questions, elle est totalement inutile. base de données, vous pouvez comprendre le paradigme de la base de données ;
Enfin, la table d'association L'idée est très bonne, et utiliser aq_id et tag_id est également correct. Quant à vous dites qu'il pourrait y avoir beaucoup de données dans le futur, ne vous inquiétez pas, sans compter que mySql n'est pas végétarien, le problème de trop de données sera également résolu dans votre future étude
La solution que vous acceptez au début est que les balises peuvent être interrogées. Chaque nombre dans les balises est séparé par des symboles. Utilisez comme pour interroger, par exemple, ,1,11,31. "%, 1, %". Cela devrait pouvoir le découvrir.