Алгоритм добавление тегов в базу при создании записи. Как правильно сделать?
Здравствуйте, коллеги! Столкнулся с необходимостью организовать систему тегов на сайте. Сделал красивый teg input, отправил теги в обработку и.. сел в лужу.
Как обрабатывать пришедший json-массив тегов?
В таблице `tags` каждый тег хранится под своим id, верно?
Как правильно вычесть совпадения и добавить новые теги, взять их id-шники и совместить многих ко многим в(условно) 'art&tags'?
Или легче писать добавление тегов независимое, "налету".. и при добавлении записи смотреть совпадения по id или тексту тега..
Как вообще правильно это сделать ? В голове уже каша..
Делается отдельно таблица записи (посты)
Отдельно таблица теги (со списком тегов
И сводная таблица
id записи - id тега
На ней ставится составной unique ключ что бы одна запись не могла иметь 2 одинаковых тега, или можно в ней ещё столбец id отдельно добавить для primary key если с составным возится неохота
1) Распарсить json
2) Проверить есть ли такие теги в таблице тегов, если есть - выбрать id, если нет - занести
3) Добавить в промежуточную таблицу связей записей = количеству тегов к посту где id записи одинаковый а id тегов постов разные
Дмитрий, спасибо за подсказку.. появился еще вопрос
В сводной таблице для каждого id записи id тегов собирать в строчку\массив, или записывать id каждого тега по отдельности?
К примеру если id записи 1 - теги 2,3,4 то
1 | 2,3,4
или
1|2
1|3
1|4
итд