Comunidad de diseño web y desarrollo en internet online

Crear subtablas

Citar            
MensajeEscrito el 19 Mar 2008 06:55 pm
Hola amigos, saludos a todos, les deseo pedir orientación sobre como poder crear una tabla con subtablas o algo parecido, les comento.

Tengo 200 tareas que se deben de ejecutar con cada compra de una accion, si el cliente compra 100 acciones, deben de desatarse para cada una de las acciones (100) sus 200 tareas, hay algunas que son acciones individuales y otras tareas que son en conjunto, pero no puedo crear una tabla para cada una, llenaria la base de datos de tablas, ya que los miles de clientes compran demasiadas acciones, mi intención es crear una tabla que tenga subtablas, no se si haya algo en Mysql, ya que estuve leyendo acerca de los tipos de filas, pero estoy creando el codigo en mi PHPMYADMIN y no funciona, por ejemplo esto:

Código :

CREATE TABLE `ubicacion` (
`lugar` VARCHAR(4),
`direcion` ROW(
`calle` VARCHAR(25),
`ciudad` VARCHAR(25),
`cp` ROW( 
`ciudadid` VARCHAR(4),
`postalid` VARCHAR(4))));

Para mi aplicación deseo crear algo parecido a esto:

identificador de tarea1 | Inicio | Duracion | Termino |
cliente 1,contrato1 | Inicio | Duracion | Termino |
cliente 1,contrato2 | Inicio | Duracion | Termino |
etc..
identificador de tarea2 | Inicio | Duracion | Termino |
cliente 1,contrato1 | Inicio | Duracion | Termino |
cliente 1,contrato2 | Inicio | Duracion | Termino |
cliente 1,contrato3 | Inicio | Duracion | Termino |
etc...
identificador de tarea3 | Inicio | Duracion | Termino |
cliente 1,contrato1 | Inicio | Duracion | Termino |
cliente 1,contrato2 | Inicio | Duracion | Termino |
etc...

Espero poderme dado a entender, los contratos pueden ser N números de contratos por clientes, la base de datos está en MYSQL y voy a acceder a esta información por medio de PHP.

Saludos y muchas gracias

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Mar 2008 07:18 pm
Necesitas una tabla con

- idTarea
- idCliente
- idContrato
- InicioTarea
- DuracionTarea
- TerminoTarea


La clave primaria en esta tabla sera compuesta y la conforman los campos: idTarea, idCliente, idContrato

Creo que es asi segun lo que entendi...

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 19 Mar 2008 07:25 pm
Maikel, dejame buscar información de una tabla compuesta, realmente necesito leer mas de SQL.

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Mar 2008 08:17 pm
Estoy de acuerdo con Maikel, lo que necesitas es usar tablas y referenciarlas con llaves foraneas o llaves compuestas según te guste, por que según tengo entendido no hay manera de hacer tablas anidadas.
Un pequeño ejemplo sería algo como:
[table_tareas]
id
idCliente
idContrato
idCiudad
InicioTarea
DuracionTarea


si la finalizacion de la tarea es continua, osea no se tiene que postergar el campo de fin de tarea es calculado y no hay necesidad de agregar un campo mas. Ahora para lo que quieres hacer puedes agregar algo como

[table_ciudades]
id
Nombre

[table_cliente]
id
Nombre

[table_contrato]
id
Numero

no creo una tabla adicional para lo del código postal puesto que me parece que hay demasiados y no vale mucho la pena ponerlo. Entonces para hacer tu query, necesitarías hacer algo como

Código :

select
   ttarea.id as tarea
   tcliente.Nombre as client
   tcontrato.Numero as contrato
   ttarea.InicioTarea as InicioTarea
   ttarea.DuracionTarea as DuracionTarea
   tciudad.Nombre as ciudad
from
   table_tareas ttarea,
   table_ciudades tciudad,
   table_cliente tcliente,
   table_contrato tcontrato
where
   ttarea.idCiudad = tciudad.id
   and ttarea.idCliente    = tcliente.id
   and ttarea.idContrato   = tcontrato.id
   and ttarea.id = 123456;

Saludos

Por zelgadiss01

87 de clabLevel



 

The Silent Hills

msie
Citar            
MensajeEscrito el 19 Mar 2008 09:00 pm
Muchas gracias por la respuesta, pero como puedo crear este tipo de tablas?.
Saludos

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Mar 2008 01:04 pm

Por zelgadiss01

87 de clabLevel



 

The Silent Hills

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.