2010-06-02 2 views
1

Comment stackOverFlow, excusez-moi si ce n'était pas la première mise en œuvre de ce système. Décider quels sont ses tags initiaux où? Je veux offrir aux utilisateurs la meilleure expérience sur mon site et je suis en train de mettre en place un système de balises. Je me fiche des moteurs de recherche ou de tout ça. Je me soucie de mes utilisateurs.Tags php améliorer la vitesse de la base de données et l'expérience utilisateur

Quelqu'un at-il des conseils sur les choses qui ont échoué ou réussi quand ils ont permis aux utilisateurs de marquer des choses?

Est-ce que quelqu'un connaît de bonnes ressources sur les méthodologies de marquage des utilisateurs? Est-ce que quelqu'un connaît de bonnes ressources sur la mise en œuvre d'un système de balises du point de vue de la programmation, des structures de base de données, des théories, etc.?

Je vais donner mon chèque à qui je me sens me pointe dans la meilleure direction sur le sujet.

+0

Twitter utilise un système de marquage appelé "sujets" aveC# symboles. Ils ne sont pas filtrés mais deviennent utiles car Twitter reconnaît les tendances. Un utilisateur va se contrôler afin de rester dans la tendance. J'ai tendance à choisir des balises avec des comptes plus élevés dans mes messages pour cette même raison. Je veux que mon message soit pertinent. – Sonny

+0

Aussi, je devrais demander à quelqu'un sait une bonne bibliothèque de tag php à regarder? La seule chose est que les frais généraux sage je suis un avare. – Prospero

Répondre

1

Un système de balises est une relation plusieurs-à-plusieurs (un élément peut contenir plusieurs balises et une balise peut contenir plusieurs éléments). Une façon de l'implémenter est d'avoir une table pour les balises, une table pour les éléments marqués (par exemple, des articles), et une table croisée pour les relations tag/item.

Table "Tag":

id 
tagname 

Table "Item":

id 
itemname 
itemcontent 

Table "Item_Tag":

item_id 
tag_id 

Chaque fois que vous marquez un élément, il suffit d'ajouter une autre ligne à la table Item_Tag. Rejoignez les tables pour obtenir les relations. Par exemple, pour trouver tous les éléments « PHP » taggées:

SELECT Item.id,Item.itemname FROM Item 
JOIN Item_Tag ON Item_Tag.item_id = Item.id 
JOIN Tag ON Tag.id = Item_Tag.tag_id 
WHERE Tag.tagname = "PHP"; 

En ce qui concerne l'utilisation réelle des balises, la seule chose que vous voulez surveiller est trop de balises. Si tous vos tags ne comportent que quelques éléments, la recherche ne donne pas de bons résultats. Vous devrez probablement contrôler manuellement le processus de création de tags pour éviter la duplication de tags similaires.

Pour les balises pour commencer, nous ne pouvons pas vous aider à ce sujet à moins que vous ne nous disiez de quoi parle votre site. Je suis sûr que Stack Overflow a commencé avec des balises pour tous les langages de programmation et d'autres sujets de programmation comme les algorithmes, OOP, etc.

Questions connexes