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

Artículo que pertenece a más de una categoría ¿como plantearlo?

Estas en el tema de Artículo que pertenece a más de una categoría ¿como plantearlo? en el foro de Mysql en Foros del Web. Hola tod@s, Tengo la siguiente duda, estoy haciendo una base de datos para meter artículos. En la tabla artículos tengo un campo INT id_categoria donde ...
  #1 (permalink)  
Antiguo 18/10/2007, 06:15
 
Fecha de Ingreso: julio-2004
Ubicación: San Sebastián de los Reye
Mensajes: 140
Antigüedad: 19 años, 9 meses
Puntos: 2
Artículo que pertenece a más de una categoría ¿como plantearlo?

Hola tod@s,

Tengo la siguiente duda, estoy haciendo una base de datos para meter artículos. En la tabla artículos tengo un campo INT id_categoria donde indico el código de la categoría a la que pertenece dicho artículo.

Ahora necesito que un artículo pueda pertenecer a más de una categoría ¿como lo plantearíais? supongo que será algo sencillo pero no doy con ello. He estado pensando en poner más campos del tipo id_categoria2, id_categoria3 pero no lo veo muy funcional.

Un saludo y gracias
__________________
tecomweb.com - diseño y desarrollo Web
  #2 (permalink)  
Antiguo 18/10/2007, 07:30
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 4 meses
Puntos: 6
Re: Artículo que pertenece a más de una categoría ¿como plantearlo?

Hola!

La solucion es que no tengas en la tabla articulo un campo que se llame categoria, tendrías que tener 3 tablas

- Tb_Categorias(IdCategoria, Nombre)
- Tb_Articulos(IdArticulo, Nombre)
- Tb_ArticulosCatogorias(IdArticulo, IdCategoria)

La primer tabla es tu catalogo de Categorias, la segunda es tu catalogo de articulos (esta no debe tener un campo llamado Categoria) y la tercera es una relacion de las categorias a las que pertenece un articulo.

Adicional te recomiendo que las tablas Categoria y Articulos esten indexadas por sus Id's y que estos mismos sean sus llaves.

Para la tabla Tb_ArticulosCategorias tendrías 2 indices, uno compuesto por los dos campos y el otro por IdArticulo (observa que estoy suponiendo que tus busquedas se harán por Articulos y no por categorias) y el campo llave será compuesto por los dos campos de las tablas.

Espero te sirva.



Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #3 (permalink)  
Antiguo 19/10/2007, 22:47
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Artículo que pertenece a más de una categoría ¿como plantearlo?

Solo para redondear un poco mas la idea de Gabo77....

Esas son relaciones n:m, osea de muchos a muchos, y tal como dice Gabo77 se solventan de esa manera, haciendo una tercera tabla.

Por experiencia te digo lo siguiente, eso de poner como PK en la tabla puente los id de las tablas articulos y categorias se puede hacer así y normalmente es lo mas usado, pero también puedes crear un id autoincrementable que sería tu PK, con los id anteriores como atributos de la tabla puente, es solo una solucion mas..., a veces la primera opción me ha puesto a programar de "mas".

Aclaro que no estoy deciendo que no se deba hacer así, es solo otra alternativa no?

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #4 (permalink)  
Antiguo 20/10/2007, 10:05
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 4 meses
Puntos: 6
Re: Artículo que pertenece a más de una categoría ¿como plantearlo?

Hola Carxl tengo una duda, ¿de que te serviría ese tercer campo que planteas en la tabla puente?, disculpa es que estoy tratando de ver la utilidad de lo que propones y no ve por donde....

¿Por que el tener solo esos dos campos te ha hecho trabajar de más?

Ojalá puedas ayudarme a entenderlo, ya que si es una opción diferente me gustaría analizarla :D

Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #5 (permalink)  
Antiguo 20/10/2007, 14:16
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Artículo que pertenece a más de una categoría ¿como plantearlo?

Hola Gabo77, còmo vas??

Efectivamente, el tener solo los dos campos me ha hecho en cierta forma programar de mas, al tener que asignar de manera la manual lo que necesita el cliente, mejor dicho, me tocò crear una interfaz para poder manejar dicho puente.

Osea al hacer el puente no puedo de ninguna manera dejar un campo nulo por se comporta como PK, y que tal dejar una PK compuesta nula!!!!

Por este motivo en ciertas ocasiones necesitè hacer esto, y la ùnica que hallè fue hacer el puente pero sin que las relaciones fueran la PK sino un id autoincrementable aparte.

Ojalà me hayas entendido... de todas formas cualquier cosa... hablamos luego!!

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #6 (permalink)  
Antiguo 22/10/2007, 11:16
 
Fecha de Ingreso: julio-2004
Ubicación: San Sebastián de los Reye
Mensajes: 140
Antigüedad: 19 años, 9 meses
Puntos: 2
Re: Artículo que pertenece a más de una categoría ¿como plantearlo?

Cita:
Iniciado por Gabo77 Ver Mensaje
Adicional te recomiendo que las tablas Categoria y Articulos esten indexadas por sus Id's y que estos mismos sean sus llaves.

Para la tabla Tb_ArticulosCategorias tendrías 2 indices, uno compuesto por los dos campos y el otro por IdArticulo (observa que estoy suponiendo que tus busquedas se harán por Articulos y no por categorias) y el campo llave será compuesto por los dos campos de las tablas.
Saludos!
Gabo77, con lo de los índices ya me has dejado descolocado. Me suena a chino, siempre utilizo tablas con su PK pero lo del índice no lo he usado jamás ¿me podrías decir para que sirven?

Carxl, a mi también me interesaría saber porque crees útil añadir un nuevo campo autoincrement.

Gracias a los dos
__________________
tecomweb.com - diseño y desarrollo Web
  #7 (permalink)  
Antiguo 22/10/2007, 14:38
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Artículo que pertenece a más de una categoría ¿como plantearlo?

Hola de nuevo!!!

Hurricane, mas arriba está la explicaciòn... espero que me entiendas, sino.. dime y te lo vuelvo a explicar...

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
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 05:09.