![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Hola azid,
Podrias usar UUID para las claves primarias. MySQL soporta UUID y tiene dos funciones integradas: UUID_SHORT() y UUID de esta manera salvarias la parte de las llaves y no tendrias problemas de colisiones.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com |
#2
|
||||
|
||||
Respecto a las claves autoincrementadas, hay que preguntarse si las necesitas para llevar números consecutivos o solamente para darle unicidad a los registros. Muchas veces se confunde una cosa con la otra y queremos que todas las llaves primarias de una tabla vayan de forma consecutiva, cuando lo único que necesitamos es que sean únicas.
Si fuera este último caso, convendría establecer un rango razonable de claves para cada sucursal, o que dichas claves se compongan o lleven un indicador de qué sucursal la generó. Si el tipo de campo usado no permite hacer lo anterior, cambiarlo por uno más flexible y usar generadores (secuencias) si fuese oportuno. Dependiendo de las complejidades del trabajo “sin conexión”, es posible que te convenga usar conjuntos de datos clientes (TClientDataSet), pues estos tienen la capacidad de almacenar la información en archivos locales para posteriormente, cuando estemos conectados nuevamente, enviarla al servidor de la base de datos. Esa parte de los conjuntos de datos clientes es algo que no he manejado aún, pero sé que existe, y la ayuda de Delphi viene con algo de información al respecto. En cualquier caso siempre recomendaré el uso de TClientDataSet y DBX, pues esa mancuerna ofrece una gran cantidad de ventajas sobre otros componentes de acceso a datos, tanto nativos, como de terceros. Desconozco qué tanto los has estudiado, César. ![]() No sobra decir que también recomiendo evitar el uso de claves "visibles" (que representan algo para los usuarios) a manera de llaves primarias. En mi opinión estas últimas tienen como único requisito que sean únicas (aunque no sean consecutivas) y no tienen nada qué hacer en una pantalla o en un reporte (para el usuario sencillamente no existen). Una cosa es el campo ID de una tabla (el que le da unicidad a cada registro y los identifica ante la base de datos y el código de la aplicación) y otra es el campo Clave, Numero, Codigo, etc. (el que le da a cada registro "identidad" ante los usuarios). Mi respuesta es algo simple para lo que seguramente tendrás que afrontar, sin embargo espero sirva de algo. Saludos. Al González. ![]() |
#3
|
||||
|
||||
Tema muy complejo en el que te metes...
Ya no sólo por los registros que insertes nuevos y los problemas que posteriormente vas a tener poara sincronozarlos con los del resto de sucursales y con los que ya hay en la Base de Datos. Sobre este tema ya te han comentado cosas. Lo otro que debes afrontar es las claves existentes en la Base de Datos que necesitas como foráneas para tus registros nuevos. Eso significa que debes tener una copia actualizada de la Base de Datos (o de ciertas tablas) en local; Al menos de las maestras. Si no es de todas, eso limitaría tus acciones. Eso añade además el trabajo de tener la Base de Datos replicada en la sucursales y un proceso continuo para actualizarla. No se si me explico. Dependiendo de los datos que necesites, esa copia puede ser pequeña o la Base de Datos completa. Una cosa más que debes tener en cuenta.
__________________
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. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cookies, ¿permitir, no permitir? Extensiones del navegador, ¿todas, ninguna, alguna? | ixMike | Seguridad | 2 | 13-11-2009 23:49:06 |
Como navegar por un website offline desde delphi? | Kyubi | Internet | 2 | 07-01-2009 19:29:41 |
Trabajar PHP sin Servidor | Deiv | PHP | 8 | 08-07-2007 20:43:10 |
¿Como no permitir mas de 1 ejecucion de la misma aplicacion? | Moises22 | Varios | 2 | 27-09-2005 13:47:19 |
Trabajar cliente servidor?? | danytorres | Varios | 13 | 28-12-2004 20:57:50 |
![]() |
|