PDA

Ver la Versión Completa : De Paradox a Firebird


morta71
04-10-2006, 22:03:17
Hola a todos,

he programado alguna aplicación en Paradox y ... bueno quisiera migrarlas a Firebird (concretamente son dos facturaciones muy sencillas). El caso es que estoy redefiniendo tablas, etc ... (aprovechamos el cambio) y me encuentro con el siguiente dilema:

Hasta ahora para acceder a los datos de diferentes empresas (o ejercicios contables en facturación) creaba las tablas correspondientes en carpetas tipo Emp1 / Emp2 / ...

Esta opción no me acaba de convencer para Firebird, desde vuestra valiosa experiencia, cual creeis que es la mejor opción:

a) crear una base de datos por empresa tipo EMP1.FDB
b) crear, dentro de la misma base de datos, las tablas tipo FACTURAS05, FACTURAS06, etc
c) dejar todos los datos en la misma tabla, haciendo la distinción según un campo que diferencie el ejercicio o empresa a la que corresponde
d) se admiten otras propuestas :confused:

La verdad es que no sé qué opción es más rentable en cuanto a diseño e implementación.

Gracias por vuestras respuestas

pepon386
05-10-2006, 13:30:10
Yo me decantaría por tener dos campos adicionales en la base de datos para almacenar la empresa y el año.
Para la migración, si quieres hacerlo rápido (aunque no es lo más eficiente) puedes cambiar los TTable's por TIBTable's y en la propiedad "Filter" le pones que filtre por la empresa y año seleccionado.
Lo más eficiente sería reemplazar todos los TTable's por TIBQuery's y en la clausula Where de la sentencia SQL seleccionas la empresa y año que quieras.

Casimiro Notevi
05-10-2006, 14:54:20
Si son pocos datos, puedes meter las distintas empresas en una misma base de datos y diferenciarlo mediante el código de la empresa.

Si fuesen muchos datos, quizás mejor distintas bases de datos.

roman
05-10-2006, 17:59:24
Yo preguntaría si piensas hacer consultas que involucren más de una empresa. Si son ajenas entre sí pienso que sería más conveniente usar bases distintas. De lo contrario no conviene usar distintas bd porque hasta donde sé, FB no permite consultas cruzadas entre varias bases.

// Saludos

Paoti
05-10-2006, 20:10:48
Estaba yo divagando en el trancusros de mi trabajo a casa, algo parecido.


y si vas a usar una base de datos por cada Empresa.


Podrias hacer lo siguiente.


en firebird, tienes un archivo que se llama aliases.conf


en el cuales puedes definir alias.


dbEmp1 = c:\db\emp1.fdb
dbEmp2 = c:\db\emp2.fdb
dbEmp3 = c:\db\emp3.fdb

entonces, podrias en tu aplicacion generar un gestor de empresas, en las cuales al dar de alta una Empresa, copias tu base de datos generica, a una empresa especifica, por ejemplo la emp3 a la base de datos dbemp3 y modifcar este archivo


así lo unico que tendrias que hacer en tu aplicacion, es cambiar tu cadena de conexión en la aplicación que apunte a un alias determinado.



tan taran tantannnnnnnnnnn.


Es todo.

Yo lo voy a hacer así, claro ya que tenga una aplicación efectiva, porque mi mentisita en un embrollo de ideas.

morta71
05-10-2006, 20:31:24
La Aplicación actualmente genera alrededor de 2000 facturas anuales, con sus respectivos albaranes (unos 3000), pedidos (cerca de 2500) y presupuestos(3000 aprox.).

No realiza consultas cruzadas entre empresas (comparaciones, etc...), pero es un nuevo planteamiento que estoy pensando hace algún tiempo.

Actualmente al cerrar un ejercicio, realiza las siguientes operaciones:

1) Genera en una nueva carpeta con las tablas de la empresa a cerrar (copiar y pegar)
2) Limpia los registros de facturas, albaranes, etc... para dejarla a punto de iniciar la facturación, sin tocar el resto de tablas (Clientes, Artículos, etc...).

Existen datos comunes que nunca se trasladan, estan aparte de las empresas, como puedan ser Bancos, Provincias, Localidades, etc...

En definitiva, es un sistema parecido al que propone Paoti.