Система тегов - это отношение «многие ко многим» (элемент может иметь много тегов, а тег может иметь много элементов). Один из способов реализовать это - иметь одну таблицу для тегов, одну таблицу для тегируемых элементов (например, статей) и перекрестную таблицу для отношений тегов / элементов.
Таблица «Метка»:
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";
Что касается фактического использования тегов, то единственное, на что вы хотите обратить внимание, - это слишком много тегов. Если все ваши теги имеют только пару элементов, помеченных им, то поиск не даст хороших результатов. Возможно, вам придется вручную контролировать процесс создания тегов, чтобы предотвратить дублирование похожих тегов.
Чтобы начать с тегов, мы не сможем вам помочь, если вы не сообщите нам, о чем ваш сайт. Я уверен, что переполнение стека началось с тегов для всех языков программирования и некоторых других тем программирования, таких как алгоритмы, ООП и т. Д.