В общем, каждый пытается использовать возможности реляционной базы данных в своих интересах. Другими словами, сериализация и десериализация строки каждый раз при доступе к любой функции тегирования невероятно неэффективна, а также плохой дизайн по другим причинам.
Например, что, если (неопределенный) тег tagc
случайно добавляется в поле tags
item
? Код будет очень трудно отлаживать.
Создание третьей таблицы, содержащей записи связанных идентификаторов, является гораздо лучшим вариантом. Кроме того, вы можете создать таблицу taggings
, которая будет выглядеть примерно так:
ID item_id tag_id tagger_id etc
-------------------------------------------
и хранить метаданные вместе с каждым тегом.
Чрезмерная зависимость от строк для хранения структурированных данных неэффективна и недостижима. Чтобы избежать «строкового типа» кода, в этих ситуациях лучше выполнять дальнейшее моделирование домена.