Что самый эффективный путь состоит в том, чтобы сохранить теги в базе данных?

В Vue2 это применяется:

var bus = new Vue()

// в методе компонента A

bus.$emit('id-selected', 1)

// в созданном крюке компонента B

bus.$on('id-selected', function (id) {

  // ...
})

См. здесь для документов Vue. И здесь более подробно описывает, как настроить эту шину событий точно.

132
задан Logan Serman 2 December 2008 в 14:51
поделиться

7 ответов

Один объект будет иметь много тегов. И один тег будет принадлежать многим объектам. Это подразумевает мне вполне возможную необходимость в посреднической таблице для преодоления many-many препятствия.

Что-то как:

Таблица: Объекты
Столбцы: Item_ID, Item_Title, Содержание

Таблица: Теги
Столбцы: Tag_ID, таблица Tag_Title

: Items_Tags
Столбцы: Item_ID, Tag_ID

, которым могло бы случиться так, что Ваше веб-приложение безумно популярно и потребность, денормализовывающая в будущем, но это - бессмысленное заиление вод слишком рано.

184
ответ дан 24 November 2019 в 00:09
поделиться

Необходимо считать сообщения в блоге Philipp Keller о метках схем базы данных. Он пробует некоторых и сообщает о его результатах, и в условия простоты построения общих запросов , и с точки зрения производительности . Количество тегов, количество теговых объектов и количество тегов на объект были всеми факторами. Сообщения с 2005; я не знаю ни о каких обновлениях с тех пор.

107
ответ дан 24 November 2019 в 00:09
поделиться

На самом деле я полагаю, что денормализовывание таблицы тегов могло бы быть лучшим путем вперед, в зависимости от масштаба.

Таким образом, таблица тегов просто имеет tagid, itemid, tagname.

Вы получите дубликат tagnames, но он делает теги добавления/удаления/редактирования для определенных объектов НАМНОГО более простыми. Вы не должны создать новый тег, удалить выделение старого и перераспределить новое, Вы просто редактируете tagname.

Для отображения списка тегов, Вы просто используете ОТЛИЧНЫЙ или GROUP BY, и конечно можно рассчитать, сколько раз тег используется легко, также.

7
ответ дан 24 November 2019 в 00:09
поделиться

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

Однако я предположил бы, что Вы будете включать столбец Tag_ID в таблицу Tags. Это обычно - хорошая практика, что каждая таблица имеет столбец ID.

1
ответ дан 24 November 2019 в 00:09
поделиться

Я предложил бы использовать посредническую третью таблицу для хранения tags< => ассоциации объектов, так как у нас есть many-many отношения между тегами и объектами, т.е. одним объектом, могут быть связаны с несколькими тегами, и один тег может быть связан с несколькими объектами. HTH, Клапан.

2
ответ дан 24 November 2019 в 00:09
поделиться

Объекты должны иметь поле "ID", и Теги должны иметь поле "ID" (Первичный ключ, Кластеризованный).

Затем делают промежуточную таблицу ItemID/TagID и помещают" Идеальный Индекс " на там.

0
ответ дан 24 November 2019 в 00:09
поделиться

Если пространство будет проблемой, имейте 3-и теги таблицы (Tag_Id, Заголовок), чтобы сохранить текст для тега и затем изменить Вашу таблицу Tags, чтобы быть (Tag_Id, Item_Id). Те два значения должны обеспечить уникальный составной первичный ключ также.

1
ответ дан 24 November 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: