![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
Hola, imposible no pero bastante elaborado si. Creo q como te dice ñuño una tabla intermedia, o un rediseño te lo optimizaria bastante. Lo q yo tenia pensado para solucionarlo
luego no mostrando los campos id1,id2,id3,id4. Seria mas elegante recoger todos los campos 'idparte where idcontratos = contratos.idcontratos' y colocarlos en un 'array', para que luego mediante un where in [...] seleccionar las empresas, o bien mediante un bucle usando for... Desconozco bien bien como funcionan los bucles y arrays en sql, por lo que no pongo nada mas, pero es probable que se pueda hacer asi. Saludos. Última edición por coso fecha: 18-09-2008 a las 11:55:34. |
|
#2
|
||||
|
||||
|
je je coso lo que me has puesto lo había pensado también pero es muy engorroso a parte no te aseguras todas las partes del contrato recuerda que son n partes no solo cuatro si son solo cuatro al final optaré por ponerlas en la misma tabla contratos. En cuanto al rediseño estoy abierto a que me planteeis otra solución todavía no he empezado a crear la BD simplemente es la idea inicial.
Lo que dice duilioisola esta bien pero no se mucho sobre procedimientos almacenados en MySQL y como pasarle valores desde delphi. Se supone que lo que tendría que hacer es crear una tabla temporal donde meta los contratos 1 a 1 y mediante un for o algo asi vaya creando tantos campos como partes tenga el contrato??? pero asi en una misma tabla unos contratos tendrán más campos que otros ??? ahhhhh esto no puede ser... |
|
#3
|
|||
|
|||
|
si lo es, si
. Es una relacion maestro detalle, con el numero de detalles variables, por lo que tendras que usar varias tablas. |
|
#4
|
||||
|
||||
|
Personalmente creo que no es una buena organización para mostrar datos (salvo utilizando Pivot Tables/Tablas dinámicas).
* Son muy ineficientes a la hora de calcularlas frente a otras posibilidades similares. * Suelen ser incompletas (salvo casos particulares); En tu caso el cliente te ha limitado a 4. **NOTA** * En tu caso además estás perdiendo información de las partes; Todo lo que no es la empresa. * Si mencionar las complicaciones que ya han comentado a la hora de ordenar, filtrar,... Si no consigues cambiar la opinión del cliente para que se "conforme" con un Maestro detalle o un agrupado, mi recomendación es que trabajes sobre tablas temporales utilizando Stored Procedures y luego muestres los datos. _________________________________________ **NOTA**: Si me guaradara un euro cada vez que me pide algo y me dicen; "Con esto vale, lo otro no va a hacer falta" y un mes después me piden lo que nunca iba a ser necesario (porque ahora se ha vuelto imprescindible) sería rico. ![]()
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#5
|
||||
|
||||
|
Cita:
¿Por que te crees que lo quiero dejar ilimitado? porque se que al final donde dije x ahora es x+1. cuando dices: Cita:
Cita:
|
|
#6
|
|||
|
|||
|
Aunque, si en contratos tansolo necesitas el nombre de las empresas de las partes...¿no te iria mejor ponerlas todas en un campo string o memo tansolo? (separadas por comas, o bien por #13). Para los filtros y para todo, al menos de la tabla contratos, te lo optimizaria bastante, y seria mas leible desde una dbgrid por ejemplo, que no tener un numero variable de columnas.
PD: incluso guardando sus idpartes correspondientes en otro campo oculto. Es un poco chapucilla si, pero funcionaria. Si no, deberas buscar el contrato con mayor numero de partes, e ir rellenando la consulta 'contratos' con tantos campos como le falten, incluyendo 'manualmente' (con lo de id<> a los que ya se tienen) por cada idcontrato... Última edición por coso fecha: 18-09-2008 a las 12:43:36. |
|
#7
|
||||
|
||||
|
Es una idea muy buena, es decir tu lo que harías es mantener la relacción maestro detalle (Contratos->Partes) y a parte crearías un campo memo en contrato con todas las partes asociadas uhmmmm esta bien lo único que tendría que tener actualizado ese campo siempre, es decir si hay una modificación en alguna de las partes tendría que cambiarlo en ese memo, y si se borra una parte, tambien la borraría en el memo.... me gusta la idea...
|
|
#8
|
|||
|
|||
|
ya diras algo
saludos |
|
#9
|
||||
|
||||
|
Yo comenzaría preguntándole al cliente qué espera ver en todos los recuadros en blanco que quedarán. Porque donde un contrato esté asociado a diez empresas y los restantes sólo a dos o tres, va a haber muchos huecos sin sentido.
Tampoco veo porqué meter una tabla extra, no se trata de una relación n-n sino de una relación 1-n, cosa que ya está contemplada en el diseño. Vistas las cosas, creo que la idea de coso es lo mejor que se puede hacer, aunque podrías hacerles un prototipo mostrándoles un maestro-detalle en forma, quien quita y los convences. // Saludos |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| ¿Mision imposible? | Alvarobc | Conexión con bases de datos | 8 | 26-04-2007 05:40:34 |
| Es imposible un lector de DVD???? | gandalf_27 | Varios | 2 | 15-06-2006 16:07:40 |
| Es Esto imposible? | jam888 | Varios | 1 | 28-04-2005 01:02:35 |
| imposible con interbase | jomaho | Firebird e Interbase | 1 | 10-05-2003 11:44:14 |
|