Хотя некоторые основные системы, такие как Joomla, хранят теги в виде текста, разделенного запятыми, в базе данных основной статьи, предпочтительнее использовать нормализованную систему из трех таблиц в виде статьи, тегов и отношения тегов (как в других, таких как Wordpress). Есть много дискуссий и вопросов о структуре и чтении; но я не смог найти лучшую команду INSERT, так как нам нужно вставить в три таблицы. Как быстро запустить этот процесс через один прогон SQL? Или нам нужно сначала вставить статью, затем каждый тег и, наконец, написать отношения?
Другой вопрос касается уникальности тегов. Основное преимущество этой системы в том, что нам нужно хранить каждый термин только один раз (затем подключаясь к соответствующим статьям). Практично ли использовать mysql UNIQUE, чтобы избежать дублирования? Или (как я где-то читал) нам нужно прочитать весь список тегов как массив, чтобы найти любое дублирование, чтобы поймать идентификатор тега и избежать сохранения термина?
Весь процесс будет состоять из трех отдельных шагов:
- ВСТАВЬТЕ статью
- ВСТАВЛЯЙТЕ теги с УНИКАЛЬНЫМИ, но независимо от их отношения
- Нахождение идентификатора каждого тега и установление связи с идентификатором статьи
Я прав? Причина, по которой я спросил, заключается в том, что я видел, как люди улавливают теги как массив и проводят сравнение. Для меня это очень медленно и убивает производительность, особенно для UPDATE.