Foros del Web » Programando para Internet » PHP »

Sistema de tags para noticias

Estas en el tema de Sistema de tags para noticias en el foro de PHP en Foros del Web. Hola a todos. Quiero hacer un sistema de tags para las noticias de una web, pero no sé cuál es la mejor forma. En otras ...
  #1 (permalink)  
Antiguo 25/09/2009, 05:03
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 17 años, 5 meses
Puntos: 4
Pregunta Sistema de tags para noticias

Hola a todos.

Quiero hacer un sistema de tags para las noticias de una web, pero no sé cuál es la mejor forma. En otras webs lo he hecho asi:
ID_noticia
Titulo
Descripcion
...
Tags (tag1, tag2, tag3...)
Lo que ahora quiero hacer es mostrar un listado con algunos o todos los tags usados, y cuando más usado, más visible. Vamos, una nube de tags:
tag8 tag3 tag21
tag1 tag11
Entonces lo que podría hacer sería esto:
1. Un SELECT de los tags de las noticias.
2. Con un bucle ir añadiendo todos los tags en un array e ir contanto las veces que aparece.
3. Con otro bucle mostrarlos más resaltados o menos...

¿No es demasiada carga para tan poca cosa?
¿Hay otra forma más sencilla de hacer el sistema de tags?
¿Sería mejor guardar los tags en otra tabla o así ya está bien?
  #2 (permalink)  
Antiguo 25/09/2009, 08:59
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: Sistema de tags para noticias

buscalo como nube tags :)
__________________
Hospedaje Web al mejor costo!
  #3 (permalink)  
Antiguo 25/09/2009, 10:36
 
Fecha de Ingreso: abril-2007
Mensajes: 114
Antigüedad: 17 años
Puntos: 2
Respuesta: Sistema de tags para noticias

Creo que lo correcto sería reestructurar la base de datos y hacer una tabla independiente para los tags. Sería algo así:

Tags
- ID_Noticia
- Tag

Ambos campos serían PRIMARY_KEY para evitar que se repita el mismo tag para la misma noticia. De esa forma con una sola consulta podrías obtener los datos del tag y el número de repeticiones. Algo como esta consulta:

Código:
SELECT Tag, COUNT(Tag) FROM Tags GROUP BY Tag
Espero haberte ayudado. Un saludo
  #4 (permalink)  
Antiguo 25/09/2009, 11:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Sistema de tags para noticias

El problema de la forma que lo tienes actual (todos los tags en un campo) es que es muy complicado obtener el total de tags, lo mejor es hacer lo que te dice paloto, así es mucho más facil contar los tags y asignarles un tamaño.

Saludos.
  #5 (permalink)  
Antiguo 25/09/2009, 12:44
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 17 años, 5 meses
Puntos: 4
Respuesta: Sistema de tags para noticias

Gracias por las ideas.

Respecto al comentario de paloto, si llenara la tabla "tag", como por ejemplo algo así:

| ID_noticia | tag |
---------------------------
1 - aburrimiento
1 - chapas
2 - juegos
2 - chapas
3 - chapas

¿No habría redundancia en la tabla y por lo tanto estaría mal? ¿O no tiene por qué?
  #6 (permalink)  
Antiguo 25/09/2009, 15:00
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 1 mes
Puntos: 535
Respuesta: Sistema de tags para noticias

es que en realidad necesitás 3 tablas:

tbl_noticias:
id_noti
(otros campos)

tbl_tags:
id_tag
nombre

tbl_noti_tags:
id
id_noti
id_tag


¿capiche?

Edit: el campo id de tbl_noti_tag es medio al pedo... pero lo suelo usar para eliminar relaciones.
__________________
...___...
  #7 (permalink)  
Antiguo 25/09/2009, 20:39
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 17 años, 5 meses
Puntos: 4
Respuesta: Sistema de tags para noticias

Se agradece la ayuda.
Al final he optado por hacerlo con 2 tablas: una para noticias y otra para tags. Así creo yo que es menos complejo.
  #8 (permalink)  
Antiguo 25/09/2009, 20:44
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 1 mes
Puntos: 535
Respuesta: Sistema de tags para noticias

Allá vos, hacelo como gustes, pero quiero que sepas que no estás haciendo lo mejor
__________________
...___...
  #9 (permalink)  
Antiguo 26/09/2009, 06:42
 
Fecha de Ingreso: abril-2007
Mensajes: 114
Antigüedad: 17 años
Puntos: 2
Respuesta: Sistema de tags para noticias

Bueno, cada caso es diferente y es el programador el que tiene que valorar qué es lo mejor. Más correcto es hacer lo que dice AlZuwaga, pero no tiene por qué ser lo mejor. Se trata de encontrar un equilibrio entre lo práctico y lo teóricamente más correcto.

Un saludo
  #10 (permalink)  
Antiguo 30/04/2011, 22:52
 
Fecha de Ingreso: marzo-2002
Mensajes: 16
Antigüedad: 22 años
Puntos: 0
Respuesta: Sistema de tags para noticias

@AlZuwaga entiendo que para normalizar en una relación de "muchos a muchos" se debe usar una tabla intermedia... lo que no entiendo es lo que dices sobre el campo id en la tabla tbl_noti_tags: "pero lo suelo usar para eliminar relaciones"

¿podrías aclarar esto?

un saludo!.
  #11 (permalink)  
Antiguo 30/04/2011, 23:20
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Sistema de tags para noticias

Te recomiendo que en tu tabla de tags hagas un tercer campo que sería para contar las veces que se ha usado, así, cada que se registre un nuevo uso de X tag le aumentas 1 más al contador.
Donde muestres tu nube, simplemente imprimes cada tag comprobando si el numero de veces es mayor a X número entonces el tamaño es igual a X px.

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #12 (permalink)  
Antiguo 01/05/2011, 00:02
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Sistema de tags para noticias

Hola:

Parece que llego tarde, pero hace poco implementé para mi página un sistema de etiquetas con su nube de tags, y básicamente uso una sola tabla con el nombre como primary key (o tal vez índice) y otro campo con la lista de id's asociados (separados por comas), así para la nube, el tamaño del texto se calcula fácilmente, y cuando quiera resaltarse en la noticia, simplemente se convierte la lista en array y se usa in_array()...

La explicación y la página: Este diario: Las etiquetas.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 19:33.