![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
Gracias por la sugerencia roman , es verdad que debe estar no muy claro, lo que pasa es que como la mayor parte de las cosas que hacemos se nos hace claro a nosotros por el tiempo que estamos con estas. Tratare de no caer en ese error. Bien, vamos por parte. Problema Debo generar una estructura de datos capaz de contener registros asociados a Tramites. Cada Tipo de tramite puede contener distintos atributos(campos). Y estos tipos deben poder ser definidos en tiempo de ejecución. Ejemplo: Tramite A tiene --> Monto[float], ID [int], Observaciones[text], ID_Producto[int] Tramite B tiene --> Nro_cliente[int], Obs[text], Telefono[text], ID_empleado[int] Como dije estos tramites van a ser definidos en tiempo de ejecución. Por lo que no puedo definir una tabla por tramite. (Es por eso que lo imagino como Clases). Solución Posible La estructura capas de almacenar esto que se me ocurre puede ser : Tramites(id_tramite(PK), id_tipo (FK), ...) Datos_x_Tramite(id_tramite(FK), id_campo(FK), valor) tipo_tramites(id_tipo(PK), ...) Campos_x_tipo(id_campo(PK),id_tipo(FK), tipo_dato[text,number,....], ..... ) El campo Valor, debo ver si lo trabajo como Texto, Variant o BLOB... Pero mas allá de ese detalle con esto creo que se puede contener todos los tramites que definan y sus registros. Inconvenientes Bien, uno de los primeros problemas que tengo con esta estructura de datos, es tratar de realizar una consulta que me devuelva el tramite y todos sus campos(Atributos). Esto es porque no se la cantidad de campos que tengo en tiempo de diseño. Osea, por cada tramite(registro : una venta, un contacto con el cliente, un reclamo, etc.), voy a tener un registro en la tabla Tramites y un registro en la Datos_X_Tramite por cada campo que tenga definido ese tramite. Con lo cual si yo quiero obtener todos los datos de los tramites de tipo X, no podría hacer Código:
Select * from Tramites t inner join Datos_x_tramite d on (t.id_tramite=d.id_tramite) Where id_tipo=X ID_tramite campo1 campo2 campo3 1 $2, 89 " LALA" 890 3 $89,8 "where" 789 Espero que este mas claro el problema
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;) |
|
#2
|
|||
|
|||
|
Hola ...
Yo estoy trabajando en un tema parecido al tuyo, nuestra empresa tiene muchos articulos deportivos, y para las fichas tecnicas, una bicicleta no tiene los mismos campos que tiene un balon. Aunque hay algunos que son comunes.
Nosotros tenemos una tabla, y para cada tipo de articulo nos dan un numero de campos, con estos campos creamos una tabla temporal. En otra tabla estan los valores de cada campo, asi que con esta rellenamos la tabla temporal. Ya para finalizar unimos esta tabla temporal con los campos que son comunes con todos los articulos. Si te sirve como lo montamos nosotros, te puedo ayudar algo. Un saludo Pd: utilizamos sqlserver 2000 |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|