| Si acaso sirve de cuento de una noche fría (como la de hoy en Paraguay)... para un sistema hice todo el "análisis y diseño" de la BD con relaciones, integridad referencial, pk's y fk's (obviamente) y lo implementamos en un dbc (con tablas dbf)... todo era muuuuuy bonito... pocas tablas.. menos de 50... algunos datos (mas de 300.000 la tabla mas grande)... cuando corriamos el programa y cargabamos un nuevo registro (en una tablas con varias "referencias" que tendrian que ser "integrales"), al hacer click en el boton "Grabar" tardaba mas de 20 segundos (en las maquinas de la red).... y obviamente los muchachos "me vinieron al humo" (se quejaron)... suspendi todas las fk's y fiu! (algo que pasa rapido)... el sistema VOLO!!... Lo que
tenemos que entender... es que el DBC genera scrips (procedimientos) en una especie de PRG que esta dentro del DBC, donde se realizan los controles de integridad referencial, esos procedimientos se ejecutan en Sesion de Datos donde se estan modificando los datos (NO EN EL SERVIDOR)... cuando son pocos datos y usados localmente.. todo lindo... pero cuando crecen las tablas y el sistema esta siendo usado en red... todos se ponen muuuuy nerviosos.... por lo que mi humilde recomendación es evitar las "relaciones permanentes"...y tener todos los controles de ingreso de datos en la aplicacion.... y buscar la manera de esconder las tablas (archivos físicos .dbf) de los curiosos... es mi experiencia... |
Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________
Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________
Respuesta sencilla: viene por compatibilidad con las versiones anteriores…
MK
De:
publice...@googlegroups.com [mailto:publice...@googlegroups.com] En
nombre de Edgar Acevedo
Enviado el: martes, 26 de junio de 2012 12:03 a.m.
Para: publice...@googlegroups.com
Asunto: Re: [vfp] Entonces qué sentido tiene crear relaciones
permanentes en VFP?..
Lo que pasa es que lo que ahora conoces como "Visual Foxpro 9" ha venido evolucionando desde finales de los 80's de un producto llamado "FoxBase" (que luego evolucionó en "FoxBase+").
Increíble aun evaluando las DBF tecnología desfasada de mas 50 años de antigüedad, y aplicando integridad referencial.........Una base de datos que no trabaja con integridad referencial, a la larga se hace pedazos y poco confiable en el manejo de información. Pero si obligas a tu base de datos que SI o SI te pida ese dato y sin eso no continuas aseguras la integridad de la información. Al menos la experiencia que he tenido en el manejo de esta tecnología en SQL Server 2008 ahora testeando el 2012, ha sido espectacular, me ha reducido la programación casi al 60%, mínimas validaciones mediante código ya que todo lo haces en un SP capturando los errores y el mensaje es bien claro pidiéndote el datos que falta.
Hoy en día comparando lo que use anteriormente tablas libres, realmente es incomparable el uso de esta nueva forma. Anteriormente había huecos por todos lados:
- Un cliente a pesar de tener ventas asociadas lo podías eliminar, o de lo contrarios debías crear una rutina de validación, cosa que ya no es necesario con las IR.
- Una proforma la podías anular a pesar que ya tenia FAC, BOL.. etc asociado, o de lo contrarios debías crear una rutina de validación, cosa que ya no es necesario con las IR.
- Los productos, proveedores... etc de la misma manera.
- Datos huérfanos por todos lados
Y para controlar eso y muchas cosas mas te llenabas de códigos de validación por todos lados, cosa que con la IR ya no es necesaria, pero si quieres las puedes hacer, pero para que? si la misma BD te lo valida.
E integridad Referencial no puede existir sin relaciones permanentes, lamentablemente después de haberte dicho esto te parece valido tu consejo de no usarlas relaciones permanentes. y la velocidad no es problema para mi ya que es muy estable. Lo que yo recomendaria recordando viejos tiempos es JAMAS usar sesion de datos.
A menos que sea exclusivo para DBF y NO como un concepto general en el manejo de datos.
Guille, Eres el famoso Guille, de la página del Guille? jeje