хороший способ хранения тегов в реляционной базе данных, когда есть переменное количество тегов, связанных с каждой частью информации

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

'As the sun sets slowly in the west, we bid you a fine farewell.'

отмечены следующими тегами:

'farewell', 'goodbye', 'amiable'

Количество тегов для предложения может варьироваться. В приведенном здесь примере есть три тега.

Каким будет разумный способ организовать этот тип информации в реляционной базе данных? Какие таблицы и т.д. были бы разумными?

Спасибо!


person d3pd    schedule 12.07.2013    source источник
comment
возможный дубликат Что является наиболее эффективным способ хранения тегов в базе данных?   -  person Jesse Smith    schedule 12.07.2013


Ответы (1)


У вас отношения многие ко многим. Сделайте три таблицы: sentence, tag и sentence_tag. Каждая из таблиц sentence и tag будет иметь поле первичного ключа id, а таблица sentence_tag будет иметь поле sentence_id и поле tag_id. Чтобы найти теги для предложения с id = $sID,

SELECT tag_name FROM tags WHERE id IN (SELECT tag_id FROM sentence_tag WHERE sentence_id = $sID);
person Joe Beuckman    schedule 12.07.2013
comment
Превосходно. Большое спасибо за вашу помощь. - person d3pd; 08.08.2013