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

No se me ocurre como resolver este problema!!!

Estas en el tema de No se me ocurre como resolver este problema!!! en el foro de Bases de Datos General en Foros del Web. Hola, saludos Estoy entrampado Ocurre que estoy haciendo un sitio de videojuegos Y quiero categorizarlo en distintas plataformas : PC, PS2, XBOX, etc... Bueno la ...
  #1 (permalink)  
Antiguo 03/12/2004, 19:53
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago, Chile
Mensajes: 92
Antigüedad: 20 años, 1 mes
Puntos: 0
No se me ocurre como resolver este problema!!!

Hola, saludos
Estoy entrampado
Ocurre que estoy haciendo un sitio de videojuegos
Y quiero categorizarlo en distintas plataformas : PC, PS2, XBOX, etc...
Bueno la cosa, es que para hacer esto habia creado una tabla (en mysql) llamada plataformas, y que tenia como campos id, nombre_plataforma.
Una vez que terminé mi sistema de noticias, me dispuse a categorizar mis noticias. Lo que hice fue añadir un campo llamado plataforma a mi tabla de noticias. Entonces yo a traves de formularios soy capaz de insertar en el campo plataformas el id de la plataforma a la que corresponde la noticia.
Bien, mi vida era perfecta, pero ´se me vino a la mente, el hecho de que algunas noticias, pertenecen a más de una plataforma. No se me ocurre como insertarle más de una plataforma a la noticia.
Hay que tomar en cuenta, que despues quiero hacer modulos en los cuales me aparezcan solo las noticias de PC, otro en el que me aparezcan solo las de PS2, en otro que aparezcan las noticias de todas las plataformas, etc....Por tanto es fundamental asignarle la o las plataformas a las que pertenece la noticia.
Sinceramente , no se me ocurre, aunque lo he visto en varios sitios de juegos. Si las noticias pertenecieran siempre solo a una plataforma sería facil, el problema es cuando pertenecen a varias, NO SE QUE HACER!!!! YO ERA FELIZ
Saludos
__________________
Necesito Colaboradores :arriba:
Siempre aprendiendo algo :pensando:
www.gamebox.cl
  #2 (permalink)  
Antiguo 03/12/2004, 21:03
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 11 meses
Puntos: 13
Si mantienes definida una lista de plataformas standard, el campo "plataforma" en la base de datos podria ser del tipo SET, donde puedes ingresar uno o mas valores de una lista definida en el campo.

Por ejemplo en el campo de tipo SET debes definir una lista de valores: PC, PS2, XBOX (3 en este caso), y cuando ingreses en ese campo la plataforma para una determinada noticia puedes insertertar 1, 2 o los 3 valores definidos en el campo.

El resto es jugar para realizar la busqueda, etc...
__________________
El conocimiento es libre: Movimiento por la Devolución
  #3 (permalink)  
Antiguo 03/12/2004, 21:27
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago, Chile
Mensajes: 92
Antigüedad: 20 años, 1 mes
Puntos: 0
Cita:
Iniciado por frijolerou
Si mantienes definida una lista de plataformas standard, el campo "plataforma" en la base de datos podria ser del tipo SET, donde puedes ingresar uno o mas valores de una lista definida en el campo.

Por ejemplo en el campo de tipo SET debes definir una lista de valores: PC, PS2, XBOX (3 en este caso), y cuando ingreses en ese campo la plataforma para una determinada noticia puedes insertertar 1, 2 o los 3 valores definidos en el campo.

El resto es jugar para realizar la busqueda, etc...
Gracias , por tu respuesta. Bueno, yo no soy muy experto en esto, pero te digo lo que entendí.
Tomando en cuanta que tengo creada mi tabla plataforma.
Tu me dices que al CAMPO plataforma de la TABLA noticias le de el tipo SET, ahí si que quede perdido. Se supone que en este tipo de campo puedo ingresar más de un valo? (no conozco mucho). En caso de hacer esto. Como filtro despues para que me muestre valores de una determinada plataforma?, y como ingreso los datos en este tipo de campo?
Saludos

PD: quede super perdido, y yo que pensé que estaba aprendiendo
__________________
Necesito Colaboradores :arriba:
Siempre aprendiendo algo :pensando:
www.gamebox.cl
  #4 (permalink)  
Antiguo 04/12/2004, 18:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
mmm .. a nivel de normalizaciòn y de "expansión" de tu sistema .. te recomendarìa seguir con tu modelo de datos original, es decir; una tabla para tus categorias .. pues si crecen .. modificar una estructura de un campo tipo SET o ENUM afecta normalmente a "progración" también que lo gestiona .. mientras que usar dos tablas en relación 1->N no hay problema en añadir más categorías si corresponde salvo que las consultas SQL se complican un poco más.

Pero .. para tu caso concreto que mencionas que 1 "juego" pued estar en "varias" categorías .. lo que te harìa falta es un modelo de datos con relaciòn N<->N

Es decir ...

tabla juegos
ID_juego
nombre
blabla

tabla categorias
ID_categoria
categoria nombre
blabla

tabla juego_categoria
ID_juego
ID_categoria

Como veras esto en principio: "Definir el mejor modelo de datos" para tu BD .. no tiene nada que ver en este punto con "PHP" .. debes enfocar estas preguntas en el foro de "Base de datos" .. No sòlo para definir este (u otro modelo mejor) de datos .. sino para que te orienten sobre el tipo de consultas SQL que tendràs que aplicar para lo que ya por encima comentas como "mostrar sòlo los juegos de tal categoria .. o mostrar los juegos y a que categorias pertenecen o estàn" entre otras cosas que se puedan ocurrirte hacer.

En www.mysql-hispano.com tienes abundantes tutoriales sobre "Base de datos" orientados a Mysql .. entre ellos tienes uno que habla sobre el concepto de la "Normalización" ... Intenta leerlo y comprenderlo. Pero sobre todo en este momento .. olvida "PHP" y centrate en definir tus "datos" y las relacinoes que van a guardar entre ellos .. así mismo a implementar las sentencias SQL que te van hacer falta. Luego ya entrarà PHP en juego para "ejecutar" esas consultas SQL.

Un saludo,
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 23:48.