Juancho: Que raro que no tengas idea de como y porque... resulta aveces necesario quebrar la estructura de las DB.. en algunas aplicaciones... aveces con cierta fruecuencia mas intermitente una que otras.. pero eso existe y es un hecho.
Me extraña juancho.... toda aplicacion abierta... esta sujeta a cambios en su estructura de base de datos... a menos que sea una aplicacion para algun producto VERTICAL. Pero donde yo me muevo (lo financiero)... el quiebre a la estructura de la DB se realiza con cierta frecuencia. Maxime cuando tenes que tropicalizar... aplicaciones de proveedores.
Vuelvo a recaer en lo mismo, pedi un ejmplo en lo cual sea completamente necesario, yo pregunt un caso especifico, en el cual sea super necesario, digamos por ejemplo cada mes!! No le allo efeciencia a una solucion d ese tipo, yo estoy d acuerdo en el sentido d q es cierto a veces es necesario quebrar la estructura d la BD para optimizar los datos y hacer busquedas d distintas maneras o cambiar su funcionalidad... allli estoy completamen claro, pero eso digamos lo haces no todos los dias q es mi punto....!! Seguire repetiendo, cuando vs creas una solucion, ya sea desde cero o para mejorar algo, vs en tu fase d anallisis tenes q evalular todos esos punto si quebrar la estructura actual de una BD (sea el caso q no estas iniciand desd cero), pero digamos en tu rama solo es armar y hacer todo el analisis d la sollucion, entonces vs a tus empleados (entiendase como programadores), vs ya le pasas todos los diagramas para q ellos trabajen, q hasta cierto punto a codificaion viene siendo ya lo ultimo... Pasando q todo lo demas ya fue analizadao vs varias analistas y alos programadores ya solo le dan "vaia hagan tal cosa" y asi en una empresa c van diviendo!!
En un caso, en el cual solo una persona haga el trabajo, quizas se rompe bastante toda esta jerarquia o como se le conoce como "Ciclo de vida del Software", pero sabes sigo interesado asi un caso especifico en el cual sea necesario, digamos cada mes o para no hacerlo tan chiquito, cada trimestre estar cambiando o rompiendo la estrucutura de la BD!, yo entiendo q en fase d codificacion, puede ser q veces uno lo diseño d una manera pero vs t venis a topar y resulta q no era la mejor forma entonces lo cambias y asi estas... pero si t piden entregar un producto siento q no es lo mas conveniete ir cambiando el diseño d la BD a cada rato... No se si m entendes el punto q t quiero a dar entender... Osea no es q t diga q nunk se rompe el diagrama d una BD, si se rompe, pero en una version quzias completament nueva podria ser ero siempre tan seguido no m parece....
Sabes hace poco hizimos eso con mi hermano, en una aplicacion q iniciamos con mi hermano, el la inicio en 1998 empezo a operar y era en Visual Fox 6.0, despues venimos y en 2002, hicimos una verssion 2.0 ya en VB 6.0 pero con el mismo diseño d trabajo d las tabals q en visual fox, solo q ocupamos access..., y desd a finales del 2006 empezamos analizar y optimizar el esquema d la BD, y lo reestructuramos todo, asi todo el diseño c cambio, lo montamos en un servidor y todo... y se mirgraros todo los datos, x cierto la appa en VS 2005 pero no es q cada mes o 3 meses se cambiaba algo!!
Mi caso:
Te cuento que yo soy fanatico de la reutilizacion de codigo hasta mas no poder. Y en cuanto a mantenimientos para entrada de datos a una db... yo hago una sola clase.... misma que se encarga mediante ciertos parametros.. de capturar los datos contenidos en el formulario... (tal es el caso de alla arriba)... y mediante un evento... mandar a guardar.. o a presentar en pantalla dichos resultados... logrando con ello... varias cosas... tales como:
Vaia voy intentar analizar una por uno y dandot mi punto d vista en comparacion a los DataSet tipados, q creo q es el punto principal como inicio esto, const no es por ofendert solo es intercambio d idea, creo q asi podemos aprender los 2 d puntos d vista distintos, yo respeto mucho la forma d programar d cualquier persona y todo, pero a veces digo yo, "a veces nosotros mismo nos complicamos la vida teniendo las cosas alli en la mano"...
1- cero codigo SQL en las formas
Bueno, esto creo q para programadores ya d altura, (m refiero a gent q hac un Form ya dic q puede programar..), osea ambito profesional como es tu caso, y el d muchos aqui, siento q es algo vital est punto... Tu mismo diseño orientado en Capas, hace q en tus Form tengas cero codigo y todo sea manejado por una jerarquia d clases, diseñada por el programador... Creo q la mayoria d gent en ambito profesional t trabaja en diseño en capas, en las empresas se dividen el trabajo, un grupo solo trabaja en el manejo d datos, otrso en diseño, otros en las Forma y asi van, entonces x eso eso creo yo q es indispensable, asi digamos vs habias delegaod alguien q t haga toda la jerarqui d clases d datos, vs solo llamas a la clase y manejas completamente tu BD!
2- Misma clase de conexion y de consulta para N formas y N tablas habidas y por haber en mi DB
Sabes est punto m gusto mucho, siento q con esto es muy facil el mantemiento en tus tablas, pero supongo q t a deber costado armar la jeraquia un poco en relacion para no tener problemas, yo m acuerdo q un proyecto q hic hac poco, en el cual era necesario ocupar 2 servidores MySQL y Oracle, la forma mas facil se m ocurrio fue q con una Interfaz, y una clase Base Conexion, se pudiera manejar todo eso, asi todas las clases hijas (osea las tablas d la BD), se manejarn todo con esa clase, sin repetir codigo y sin nada para los 2 servidores... Pero un poco complicado el diagrama, pero bueno... jejejej, era en Java por cierto...! X cierto como comentario, eso m gusto d Java, y cosa q VS, a veecs t mal acostumbra, es mas facil reutilizar tu codigo en Java q en VS xq como VS todo t lo da echo, entonces x eso m gusto mas Java, pero bueno eso solo era d comentario!!
3- Cero problemas al momento de reestructurar la db (quebrar el diseño)
Siento yo q si utilizas DS con tu diseñador y tu clase del manejo d datos, como es una DS tipado, entonces no tendrias q cambiar nada d codigo, en tu clase d datos, sino q unicamente actualizas tu clase tipada y listo, todos los cambios se realizar efectivament sin cambiar nada d codigo... Asi q podes cambiar todo lo queres pero si regresabas una table, con el DataSet tipado solo llamas al getTable (ya no m acuerdo como es jejejej), y vas regresa una tabla e independient si cambias el diseño automaticament t va a ser la acutalizacion asi q no veo mejor con respecto a los DS tipados!
4- Velocidad para producir en la programacion dado que te ahorras digitacion de codigo incluyendo el COPY PASTE.
Decime no t ahorras tiempo con el Data Set tipado?? Si el propio VS t crea la clase para q vs solo lo mandes a llmar, osea no digitas nada... el solito t hace todo... Entonces ni siquiera un Copy Paste vas hacer... ni digitar nada...!
6- Mejor control para que las formas (form) interactuen con la db sin enchibolarse.. para hacer ajustes o cambios
Bueno, aqui creo q no hay nada q decir... siento q es un punto bn neutral...!
7- Standarizacion al maximo en la estructura de programacion.
Creo q aqui noc si podrias ser un poquito mas especifcio, cuando t referis a la estandarizacion d la estrucutra d programacion... x fa... para poder comentar acerca d este punto!
8- Maximisas los tiempos de produccion.
Bueno, creo q aqui puede ser el punto mas a favor q tiene, con respecto cuando uno hac todo sollito, asi a patin, puia lo q podes lograr cuanod uno lo hac desd cero, pero puia con una logica bn centrada y sencilla pero rapida, juela aqui si optimizas... y esto no t lo niego... yo con eso q t cont q hic un trabajito en java, juela eso d hacerle vs a patin pero bn craneado t ahorra un monton d tiempo q avces uno por atenido a los DS tipados en poryecto demasiams extenss puede ser problemas, por su repeticion... Entonces aqui si t doy toda la razon y eso creo q lo puse antes...
Espero no ofendert Sicario, con algun comentario, pero e intentado ser lo mas claro y explicart un poco mi forma d ver las cosas... Si t ofendi lo siento mucho, yo siento q esto es un foro para todos aprendamos un poco d todos y asi compartir conocimientos...!!