Там довольно много дискуссий относительно схемы тегов, но я заметил, что большинство из них сосредоточено на одном типе контента, таком как закладки или фотографии.
Я заинтересован в использовании тегов в нескольких функциях многопользовательского бизнес-приложения; тот, где теги могут быть связаны с полями формы, документами, фотографиями, настройками конфигурации и многим другим.
Я хотел бы разработать меньший набор таблиц, которые можно масштабировать в соответствии с этими различными потребностями, а не штамповать таблицы ссылок для каждого типа контента, что добавляет некоторую сложность:
tags {
tagsID
tagName
}
tagChildren {
childID
childValue
}
tagType {
typeID
typeName
}
entity {
entityID
entityName
...
}
tagMap {
mapID
tagsID (FK)
childID (FK)
typeID (FK)
entityID (FK)
}
tagMap можно использовать для подключения любого количества этих элементов, но он будет соединять как минимум теги и tagType. Например, тег может быть связан с раскрывающимся типом поля. Это может быть раздел реестра с типом реестра, дочерним значением и быть связанным с сущностью. Дочерний тег может быть другим тегом, чтобы обеспечить многоуровневые отношения родитель-потомок.
При распределении существует риск, поскольку многие функции становятся зависимыми от небольшого набора таблиц.
Если вы столкнулись с подобным решением или у вас есть идея, которая может помочь, поделитесь своими мыслями, подходом и тем, как производительность связана с риском распространения.
Спасибо!