Хобрук: Ваш путь к мастерству в программировании

Разрешить поиск по тегам?

Существует HTML-форма, через которую пользователь создает элемент. Элементы ищутся с помощью обычного sql-запроса. Теперь для каждого элемента HTML-формы будет предоставлено поле тега. Таким образом, при создании элемента пользователь вводит имя тега для элемента, и элемент будет создан вместе с именем тега. Затем пользователь будет использовать это имя тега для поиска элементов.

Каким может быть лучший способ реализовать это? Является ли добавление столбца тегов к каждой таблице Item хорошим способом сделать это? Каковы другие возможные варианты?

22.06.2009

Ответы:


1

Я полагаю, вы хотели бы свести к минимуму круговые поездки на сервер базы данных. Теги, скорее всего, будут атрибутом одного из интересующих элементов, и это отношение «многие ко многим». Это хорошо проторенный путь, и вы можете найти дополнительную информацию здесь.

22.06.2009

2

Если вы хотите иметь возможность добавлять несколько тегов, то лучше всего реализовать такую ​​таблицу:

 item_tag
      item_id - Integer
      tag_name - Varchar

или две таблицы:

 item_tag
      item_id
      tag_id
 tags
      id
      name

Используйте таблицу post_tag, чтобы содержать список тегов, связанных с каким элементом. Если вы хотите искать элементы по тегу, вы можете сделать

 SELECT * FROM `items` LEFT JOIN `item_tag` ON `items`.`id` = `item_tag`.`item_id` WHERE `tag_name` = 'value'

Вот сообщение, в котором обсуждается лучший способ реализации тегов система, предлагающая использовать три таблицы; например, items, tags, items_tags

22.06.2009
Новые материалы

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

стройный-i18следующий
Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..