Проектирование архитектуры базы данных тегов T-SQL?

сценарий

Я строю базу данных, которая содержит ряд различных таблиц. Они состоят из таблицы COMMENTS, таблицы BLOGS и таблицы ARTICLES. Я хочу иметь возможность добавлять новые элементы в каждую таблицу и отмечать их тегами от 0 до 5, чтобы помочь пользователю легче находить нужную информацию.

Начальные мысли для архитектуры

Моими первыми мыслями было иметь централизованную таблицу TAGS. В этой таблице будут перечислены все доступные теги с использованием поля TagID и поля TagName. Поскольку у каждого элемента может быть много тегов, а у каждого тега может быть много элементов, мне потребуется отношение MANY-TO-MANY между каждой таблицей элементов и таблицей TAGS.

Например:

Многие комментарии могут иметь много тегов. Многие теги могут иметь много комментариев.

Многие СТАТЬИ могут иметь много тегов. Многие теги могут иметь много статей.

и т.д.....

Текущее понимание

Из предыдущего опыта я понимаю, что одним из способов реализации этой структуры в T-SQL является объединение таблицы между таблицей COMMENTS и таблицей TAG. Эта объединяющая таблица будет содержать CommentID и TagID, а также собственный уникальный CommentTagID. Эта структура также будет применяться ко всем другим пунктам.

Вопросов

Во-первых, это правильный путь для реализации такой архитектуры базы данных? Если нет, то какие другие методы были бы возможны? Поскольку база данных в конечном итоге будет содержать много информации, я должен обеспечить ее масштабируемость. Это масштабируемая реализация? Если бы у меня было много этих таблиц, эта архитектура сделала бы операции CRUD очень медленными? Должен ли я использовать GUID или инкрементные INT для полей идентификаторов?

Помощь и предложения будут высоко оценены.

Спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос