Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

campo tipo array?

Estas en el tema de campo tipo array? en el foro de Bases de Datos General en Foros del Web. tengo una tabla con los datos de los usuarios registrados a un sitio Tabla: usuarios Campos: id, nombre, clavemd5, ... tengo otra tabla con varios ...
  #1 (permalink)  
Antiguo 30/06/2008, 18:01
 
Fecha de Ingreso: noviembre-2005
Mensajes: 144
Antigüedad: 19 años
Puntos: 2
campo tipo array?

tengo una tabla con los datos de los usuarios registrados a un sitio

Tabla: usuarios
Campos: id, nombre, clavemd5, ...

tengo otra tabla con varios registros de video-clips

Tabla: videos
Campos: id, video, artista, ...

lo que deseo hacer es guardar los videos favoritos de los usuarios

quiero hacerlo de la forma mas eficiente, dado que los videos favoritos se van agregar o quitar e ir sumando.

estaba pensando agregar un campo "favoritos" en la tabla usuarios o crear una nueva tabla "favoritos". ¿cual de las dos opciones es mas recomendable?

se puede agregar un campo tipo array?

gracias de antemano y saludos
  #2 (permalink)  
Antiguo 30/06/2008, 22:58
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: campo tipo array?

lo mejor es, creo, crear una tabla favoritos con al menos 3 campos:

idfavoritos clave auto_increment
idusuario int FK (donde escribirás el id de usuarios)
idvideo int FK (donde escribirás el id de videos)

Piensa que un video puede ser favorito de varios usuarios y que un usuario puede tener como favoritos varios videos, por lo que se hace necesaria una tercera tabla.
  #3 (permalink)  
Antiguo 30/06/2008, 23:07
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 18 años, 1 mes
Puntos: 22
Respuesta: campo tipo array?

pues yo lo haria de la siguiente forma.

agregaria un campo a los usars algo asi como "video_favoritos" y en el agregaria los id de cada video separados por comas es desir "12, 28, 38" asi y luego con PHP creas un array para ese campo y obtienes los ids de cada video para mostrarlo donde quieras.

algo similar hago con el sistema de tags de mi pagina de descargas, de la cual no voy a dar la direccion porque depronto dicen que es SPAM. xD
  #4 (permalink)  
Antiguo 01/07/2008, 00:21
 
Fecha de Ingreso: noviembre-2005
Mensajes: 144
Antigüedad: 19 años
Puntos: 2
Respuesta: campo tipo array?

Cita:
Iniciado por kalvinman Ver Mensaje
pues yo lo haria de la siguiente forma.

agregaria un campo a los usars algo asi como "video_favoritos" y en el agregaria los id de cada video separados por comas es desir "12, 28, 38" asi y luego con PHP creas un array para ese campo y obtienes los ids de cada video para mostrarlo donde quieras.

algo similar hago con el sistema de tags de mi pagina de descargas, de la cual no voy a dar la direccion porque depronto dicen que es SPAM. xD
estaba pensando hacer algo asi. pero utilizando tu ejemplo: "12, 28, 38" como hago si el usuario desea quitar de favoritos el video 28

saludos y gracias por los consejos.
  #5 (permalink)  
Antiguo 01/07/2008, 00:29
 
Fecha de Ingreso: noviembre-2005
Mensajes: 144
Antigüedad: 19 años
Puntos: 2
Respuesta: campo tipo array?

Cita:
Iniciado por jurena Ver Mensaje
lo mejor es, creo, crear una tabla favoritos con al menos 3 campos:

idfavoritos clave auto_increment
idusuario int FK (donde escribirás el id de usuarios)
idvideo int FK (donde escribirás el id de videos)

Piensa que un video puede ser favorito de varios usuarios y que un usuario puede tener como favoritos varios videos, por lo que se hace necesaria una tercera tabla.
no va ser un gran problema cuando esta tabla se llene de registros?

gracias.
  #6 (permalink)  
Antiguo 01/07/2008, 01:05
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Respuesta: campo tipo array?

la idea es crear una tabla intermedia
favoritos (id_video, id_usuario)

que es como se modela una relación N:M de toda la vida.

Salu2
  #7 (permalink)  
Antiguo 01/07/2008, 01:49
 
Fecha de Ingreso: noviembre-2005
Mensajes: 144
Antigüedad: 19 años
Puntos: 2
Respuesta: campo tipo array?

Cita:
Iniciado por seyko Ver Mensaje
la idea es crear una tabla intermedia
favoritos (id_video, id_usuario)

que es como se modela una relación N:M de toda la vida.

Salu2

me intereso mucho esto de las tablas intermedias me gustarias si podes ondar mas en el tema o facilitarme un manual de como utilizarlas

saludos.
  #8 (permalink)  
Antiguo 01/07/2008, 12:37
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 18 años, 1 mes
Puntos: 22
Respuesta: campo tipo array?

Cita:
Iniciado por juansemaster Ver Mensaje
estaba pensando hacer algo asi. pero utilizando tu ejemplo: "12, 28, 38" como hago si el usuario desea quitar de favoritos el video 28

saludos y gracias por los consejos.
Pues simplemente el script que elimina el favorito simplemente coje la cadena del campo, busca y remplaza el id del video y lo vuelve a guardar en la misma posicion, no le veo mayor problema. xD
  #9 (permalink)  
Antiguo 02/07/2008, 02:49
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Respuesta: campo tipo array?

Cita:
Iniciado por juansemaster Ver Mensaje
me intereso mucho esto de las tablas intermedias me gustarias si podes ondar mas en el tema o facilitarme un manual de como utilizarlas

saludos.
A ver si te vale con un ejemplo:

Una empresa de alquiler de vehiculos, el modelo tiene una tabla conductores y una tabla coches. Un conductor puede llevar distintos coches y el mismo coche lo puede llevar un conductor distinto cada dia --> Relación N:M

Para modelar esta situación lo mejor es:
Tabla conductores (id_conductor PK, ...)
Tabla coches (id_coche PK, ....)
Tabla conductores_x_coches (id_coche FK(coches), id_conductor FK(conductores), ..., PK (id_coche, id_conductor)).

Está claro que esto es una especie de pseudocodigo.
FK = foreign key
PK = primary key

Por ejemplo, en este caso, tal como está un conductor no puede conducir 2 veces el mismo coche. En tu caso, supongo que quieres que un usuario no tenga 2 veces el mismo video en favoritos....

Espero que haya quedado claro.

Salu2
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:17.