¿Diseño de arquitectura de base de datos de etiquetas T-SQL?

Guión

Estoy construyendo una base de datos que contiene una serie de tablas diferentes. Consisten en una tabla de COMENTARIOS, una tabla de BLOGS y una tabla de ARTÍCULOS. Quiero poder agregar nuevos elementos a cada tabla y etiquetarlos con entre 0 y 5 etiquetas para ayudar al usuario a buscar información particular que sea más relevante con mayor facilidad.

Pensamientos iniciales para la arquitectura.

Mis primeros pensamientos fueron tener una tabla centralizada de TAGS. Esta tabla enumera todas las etiquetas disponibles usando un campo TagID y un campo TagName. Dado que cada elemento puede tener muchas etiquetas y cada etiqueta puede tener muchos elementos, necesitaría una relación MANY-to-MANY entre cada tabla de elementos y la tabla TAGS.

Por ejemplo:

Muchos COMENTARIOS pueden tener muchos TAGS. Muchos TAGS pueden tener muchos COMENTARIOS.

Muchos ARTÍCULOS pueden tener muchos TAGS. Muchos TAGS pueden tener muchos ARTÍCULOS.

etc .....

Comprensión actual

Por experiencia previa, entiendo que una forma de implementar esta estructura en T-SQL es tener una tabla conjunta entre la tabla COMENTARIOS y la tabla TAG. Esta tabla adjunta contendría el CommentID y el TagID, así como su propio único CommentTagID. Esta estructura también se aplicaría a todos los demás elementos.

Preguntas

En primer lugar, ¿es esta la forma correcta de implementar una arquitectura de base de datos de este tipo? Si no, ¿qué otros métodos serían viables? Como la base de datos contendrá mucha información, debo asegurarme de que sea escalable. ¿Es esta una implementación escalable? Si tuviera muchas de estas tablas, ¿esta arquitectura haría las operaciones CRUD muy lentas? ¿Debo usar GUIDs o INT incrementales para los campos de ID?

Ayuda y sugerencias serían apreciadas grandemente

Gracias.

Respuestas a la pregunta(3)

Su respuesta a la pregunta