Теги php, улучшающие скорость работы базы данных и пользовательский опыт - PullRequest
1 голос
/ 03 июня 2010

Как работает stackOverFlow, извините, если это была не первая реализация этой системы. Решите, что его начальные теги, где?

Я хочу предоставить пользователям наилучшие возможности на моем сайте, и я внедряю систему тегов. Меня не волнуют поисковые системы или что-то в этом роде. Я просто забочусь о своих пользователях.

Есть ли у кого-нибудь совет о вещах, которые потерпели неудачу или преуспели, когда они позволили пользователям отмечать вещи?

Кто-нибудь знает хорошие ресурсы о методологиях пользовательских тегов? Кто-нибудь знает какие-нибудь хорошие ресурсы о реализации системы тегов с точки зрения программирования, структур баз данных, теорий и т. Д.?

Я дам свой чек тому, кто, как мне кажется, укажет мне лучшее направление по этому вопросу.

1 Ответ

1 голос
/ 03 июня 2010

Система тегов - это отношение «многие ко многим» (элемент может иметь много тегов, а тег может иметь много элементов). Один из способов реализовать это - иметь одну таблицу для тегов, одну таблицу для тегируемых элементов (например, статей) и перекрестную таблицу для отношений тегов / элементов.

Таблица «Метка»:

id
tagname

Таблица «Товар»:

id
itemname
itemcontent

Таблица "Item_Tag":

item_id
tag_id

Каждый раз, когда вы отмечаете элемент, просто добавляйте еще одну строку в таблицу Item_Tag. Присоединяйтесь к столам, чтобы получить отношения. Например, чтобы найти все элементы с тегом «PHP»:

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";

Что касается фактического использования тегов, то единственное, на что вы хотите обратить внимание, - это слишком много тегов. Если все ваши теги имеют только пару элементов, помеченных им, то поиск не даст хороших результатов. Возможно, вам придется вручную контролировать процесс создания тегов, чтобы предотвратить дублирование похожих тегов.

Чтобы начать с тегов, мы не сможем вам помочь, если вы не сообщите нам, о чем ваш сайт. Я уверен, что переполнение стека началось с тегов для всех языков программирования и некоторых других тем программирования, таких как алгоритмы, ООП и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...