Relatedformas de implementar las etiquetas - pros y los contras de cada
Uso de SO como un ejemplo, ¿cuál es la manera más sensata para gestionar etiquetas si prevé que va a cambiar con frecuencia?
Camino 1: En serio desnormalizado (delimitado por comas)
table posts +--------+-----------------+ | postId | tags | +--------+-----------------+ | 1 | c++,search,code |
Aquí etiquetas están delimitadas por comas.
Pros: Las etiquetas se recuperan a la vez con una sola consulta select
. La actualización de etiquetas es simple. Fácil y económico de actualizar.
Contras: Análisis adicional en la recuperación de etiquetas, es difícil contar cuántas publicaciones usan qué etiquetas.
(alternativamente, si se limita a algo así como 5 etiquetas)
table posts +--------+-------+-------+-------+-------+-------+ | postId | tag_1 | tag_2 | tag_3 | tag_4 | tag_5 | +--------+-------+-------+-------+-------+-------+ | 1 | c++ |search | code | | |
manera 2: (tabla separada, sin intersección) "Un poco normalizada"
table posts +--------+-------------------+ | postId | title | +--------+-------------------+ | 1 | How do u tag? | table taggings +--------+---------+ | postId | tagName | +--------+---------+ | 1 | C++ | | 1 | search |
Pros: Fácil de ver conteo de etiquetas (count(*) from taggings where tagName='C++'
).
Contras: tagName probablemente se repita muchas, muchas veces.
Vía 3: El niño fresco (normalizada con tabla de intersección)
table posts +--------+---------------------------------------+ | postId | title | +--------+---------------------------------------+ | 1 | Why is a raven like a writing desk? | table tags +--------+---------+ | tagId | tagName | +--------+---------+ | 1 | C++ | | 2 | search | | 3 | foofle | table taggings +--------+---------+ | postId | tagId | +--------+---------+ | 1 | 1 | | 1 | 2 | | 1 | 3 |
Pros:
- No se repiten los nombres de etiqueta.
- Más chicas te gustarán.
Contras: Más caro para cambiar las etiquetas que la forma # 1.
Enviaría un correo electrónico/twitter a alguien que haya tenido que administrar etiquetas antes que usted. Le gusta Jeff Atwood o uno de los otros desarrolladores de SO. Es posible que puedan dar algunas ideas. –
me parece que acabas de responder la pregunta. Por lo tanto, elija la que mejor se adapte a sus necesidades. Si quieres que las chicas te gusten, entonces ve al # 3. – mdma
Más chicas te querrán, ¿eh? Me gusta esa elección! – Tarka