2010-03-19 4 views
1

Je crée un site Web pour un client et souhaite pouvoir créer des articles. Mon idée est de les marquer afin que je puisse mettre en place le système.Système de balisage de la base de données

Quelle est la meilleure conception, à la fois du point de vue architectural et une perfomance:

1. Avoir table avec toutes les balises et ensuite un à plusieurs table de relation qui lie un tag comme ceci:

articles table with ID 
tags table with ID 
one to many table with columns Article.ID and Tags.ID 

2. pour avoir une table avec des articles et une avec des étiquettes pour des articles comme ceci:

articles table with ID 
tags table with Article.ID and tag text 

Merci d'avance!

Répondre

3

Votre première option est la plus appropriée et théoriquement correcte.

Devinez, vos clients ne considèrent pas les balises comme une caractéristique intéressante parce que tout le monde l'a - ils aimeraient avoir une recherche par balises. Même s'ils ne comprennent pas encore leurs besoins et veulent vraiment avoir des étiquettes parce que tout le monde les comprend, ils réaliseront bientôt leurs besoins.

La première option vous donnera une meilleure performance de recherche.

Mettre en place une table distincte pour les articles, les étiquettes et plusieurs-plusieurs entre eux.

3

Certainement la première option. Outre les autres avantages, vous pouvez imposer une certaine régularité dans l'utilisation des étiquettes, en vérifiant si l'étiquette (ou une étiquette similaire) est déjà présente avant de l'ajouter, en permettant aux utilisateurs de choisir parmi les étiquettes existantes, et/ou en autorisant seulement superutilisateurs pour ajouter de nouveaux tags.

De cette façon, vous éviter ou fautes d'orthographe orthographes des mêmes balises (par exemple aux États-Unis, États-Unis, USofA, U.S.A., Americains, États-Unis., Amérique, Amerika, amrica et ainsi de suite lors de l'étiquetage quelque chose aux États-Unis)

Questions connexes