В Vue2 это применяется:
var bus = new Vue()
// в методе компонента A
bus.$emit('id-selected', 1)
// в созданном крюке компонента B
bus.$on('id-selected', function (id) {
// ...
})
См. здесь для документов Vue. И здесь более подробно описывает, как настроить эту шину событий точно.
Один объект будет иметь много тегов. И один тег будет принадлежать многим объектам. Это подразумевает мне вполне возможную необходимость в посреднической таблице для преодоления many-many препятствия.
Что-то как:
Таблица: Объекты
Столбцы: Item_ID, Item_Title, СодержаниеТаблица: Теги
Столбцы: Tag_ID, таблица Tag_Title: Items_Tags
Столбцы: Item_ID, Tag_ID
, которым могло бы случиться так, что Ваше веб-приложение безумно популярно и потребность, денормализовывающая в будущем, но это - бессмысленное заиление вод слишком рано.
Необходимо считать сообщения в блоге Philipp Keller о метках схем базы данных. Он пробует некоторых и сообщает о его результатах, и в условия простоты построения общих запросов , и с точки зрения производительности . Количество тегов, количество теговых объектов и количество тегов на объект были всеми факторами. Сообщения с 2005; я не знаю ни о каких обновлениях с тех пор.
На самом деле я полагаю, что денормализовывание таблицы тегов могло бы быть лучшим путем вперед, в зависимости от масштаба.
Таким образом, таблица тегов просто имеет tagid, itemid, tagname.
Вы получите дубликат tagnames, но он делает теги добавления/удаления/редактирования для определенных объектов НАМНОГО более простыми. Вы не должны создать новый тег, удалить выделение старого и перераспределить новое, Вы просто редактируете tagname.
Для отображения списка тегов, Вы просто используете ОТЛИЧНЫЙ или GROUP BY, и конечно можно рассчитать, сколько раз тег используется легко, также.
Вы не можете действительно говорить о замедлении на основе данных, которые Вы обеспечили в вопросе. И я не думаю, что необходимо даже волноваться слишком много о производительности на этом этапе разработки. Это звонило преждевременная оптимизация .
Однако я предположил бы, что Вы будете включать столбец Tag_ID в таблицу Tags. Это обычно - хорошая практика, что каждая таблица имеет столбец ID.
Я предложил бы использовать посредническую третью таблицу для хранения tags< => ассоциации объектов, так как у нас есть many-many отношения между тегами и объектами, т.е. одним объектом, могут быть связаны с несколькими тегами, и один тег может быть связан с несколькими объектами. HTH, Клапан.
Объекты должны иметь поле "ID", и Теги должны иметь поле "ID" (Первичный ключ, Кластеризованный).
Затем делают промежуточную таблицу ItemID/TagID и помещают" Идеальный Индекс " на там.
Если пространство будет проблемой, имейте 3-и теги таблицы (Tag_Id, Заголовок), чтобы сохранить текст для тега и затем изменить Вашу таблицу Tags, чтобы быть (Tag_Id, Item_Id). Те два значения должны обеспечить уникальный составной первичный ключ также.