Todo depende de los volúmenes y el contenido de datos para etiquetar distribución y densidad de relaciones
Si tiene una distribución bajo la etiqueta y la relación de densidad (datos típicos generados por humanos), simplemente puede generar una identificación única o hash para cada posible colección de etiquetas en uso por los datos. Asociar el id 'colección tag' con cada instancia de datos con esas etiquetas
Esto puede funcionar sorprendentemente bien para muchas formas de humano datos generados
por ejemplo Stackoverflow tiene ~ 500,000 preguntas y ~ 20,000 etiquetas (¡demasiadas etiquetas dupe-ish!). La mayoría de las preguntas tienen menos de cinco etiquetas. En el peor de los casos, tendrá que asociar 500,000 identificaciones de 'colección de etiquetas', pero más realista tendrá varios miles
También tendrá que tener seguimiento de instancias o recolección de basura en la colección 'colección de etiquetas' como combinación específica de etiquetas caen fuera de uso
por ejemplo
- Tag: id, tagName
- TagCollection: id, instanceCount
- TagCollectionTag: tagCollectionIId, TagId
- datos: ID, título, contenido, tagCollectionId
etiquetas insertando es rápida si se usa un hash (hash en todas las etiquetas de la colección). De lo contrario, debe buscar las colecciones TagCollection y TagCollectionTag, pero esto no debe ser demasiado grande
La búsqueda es rápida; buscar TagCollectionTag para las instancias que contienen el conjunto específico de etiquetas, y luego encontrar filas de datos con cualquiera de los tagCollectionId de
la esperanza de que no era demasiado confuso :-)
muy buena pregunta! –