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

Aprendiendo a usar SQL

Estas en el tema de Aprendiendo a usar SQL en el foro de Mysql en Foros del Web. Soy muy novato en mysql. Por ahora me maneje con tablas sin ningun tipo de relacion porque se me complicaba bastante, pero hoy quiero avanzar. ...
  #1 (permalink)  
Antiguo 06/04/2009, 09:13
 
Fecha de Ingreso: marzo-2009
Mensajes: 168
Antigüedad: 15 años
Puntos: 1
Aprendiendo a usar SQL

Soy muy novato en mysql. Por ahora me maneje con tablas sin ningun tipo de relacion porque se me complicaba bastante, pero hoy quiero avanzar.
Les cuento mi caso, tengo 3 tablas. 1) Productos 2)Cartas 3)Libros

En la 1) quiero que esten todos los productos, mientras que en la 2) solo las cartas(varios tipos de cartas) y en la 3) solo los libros.

Yo queria saber como relacionarlas, y si hay alguna forma que agregando los productos en la tabla productos, se agreguen automaticamente en cartas o libros (dependiendo su categoria) o en su defecto, que al agregar productos en la tabla cartas o en la tabla libros, la tabla productos se actualice sola con estos productos.

Queria saber si habia aguna funcion, o codigo sql para realizar esto.
Muchas gracias
  #2 (permalink)  
Antiguo 06/04/2009, 09:47
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: Aprendiendo a usar SQL

Com oesta:

Mire yo lo que haria seria lo siguiente:

Segun le entiendo los libros y las cartas son tipos de productos que usted tiene o ofrece.

Entonces envez de crear esas tablas crearia dos asi

TipoProducto

CodTipo Nombre
1 Libros
2 Cartas



Producto

CodProducto NomProducto CodTipo
1 Teologia 1
2 Filosofia 1
3 Postales 2


Hay le quedan todos los productos y los relaciona dependiendo el tipo de de producto que sean.


Ahora si desea crear llaves "osea las relaciones entre las tablas" lo que se hace es colocar como llave primaria los codigos de cada tabla osea en la tabla producto la llave primaria es CodPorducto "Porque este nunca se va a repetir" y en tipproducto la llave es codtipo.

Ahora el campo codtipo de la tabla producto sera la llave forania con el campo codtipo de la tabla tipproducto "porque este campo depende delosa tipos de producto existentes en la tabla tipproducto"


Espero me haya entendido y mas omenos tenga una idea de como es el cuento

Cualquier cosa me avisa.
  #3 (permalink)  
Antiguo 06/04/2009, 09:52
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Aprendiendo a usar SQL

Para complementar un poco lo dicho por helacer, en el manual de referencia de mysql explican bien la forma de crear las tablas y como relacionarlas.

http://dev.mysql.com/doc/refman/5.0/...nstraints.html

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 06/04/2009, 10:02
 
Fecha de Ingreso: marzo-2009
Mensajes: 168
Antigüedad: 15 años
Puntos: 1
Respuesta: Aprendiendo a usar SQL

Entendi lo que decis.
En caso de hacerlo te hago una pregunta, si yo quiero llamar solo a los productos del tipo cartas?, como deberia hacerlo (desde php en lo posible).
Y por ultimo, lo que yo dije es algo medio imposible??

Gracias por responder :)
  #5 (permalink)  
Antiguo 06/04/2009, 10:23
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: Aprendiendo a usar SQL

a que se refiere con l oque yo dije????


Este select le traeria los productos que son Carta.
select * from producto where CodTipo=2

Codigo php no le puedo colocar aca.
  #6 (permalink)  
Antiguo 06/04/2009, 10:25
 
Fecha de Ingreso: marzo-2009
Mensajes: 168
Antigüedad: 15 años
Puntos: 1
Respuesta: Aprendiendo a usar SQL

nono perfecto entendi, no sabia lo del wherecodtipo=2
Ahora lo unico que me falta que voy a atratar de hacerlo por mi cuenta, es relacionar el campo de la tabla productos codtipo con el campo de la tabla tipo codtipo a ver si puedo.
Muchas gracias de nuevo
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 06:12.