Estructura de la base de datos
<< Click to Display Table of Contents >> Navegación: Guía de usuario > Administración > Estructura de la base de datos |
Sigrid puede comunicarse con distintos motores de bases de datos: MS Jet, SQL Server, Oracle, etc. todas ellas son bases de datos que utilizan el estándar SQL acrónimo de Structured Query Language (Lenguaje de consultas estructurado).
La base de datos de Sigrid es un archivo único que tiene la extensión sig. Al instalar la aplicación se copia una base de datos de ejemplo que utiliza MS Jet, pudiendo crear tantas bases de datos como se necesiten con la opción Nueva Base de datos del menú Archivo. En cada una de las ventanas principales de la aplicación podrá tener abierta una base de datos o una de las empresas presentes en la base de datos.
La estructura de la base de datos es siempre la misma, independiente del motor de base de datos que utilice y del programa Sigrid que tenga instalado. No en todos los casos utilizará todas las tablas de la base de datos, por ejemplo, si tiene Sigrid Contabilidad y no tiene Gestión, nunca introducirá datos en la tabla de movimientos de almacén, aunque la tabla exista en la base de datos.
Como en cualquier base de datos relacional, los datos se almacenan en tablas relacionadas entre sí, el diseño de estas tablas y relaciones es uno de los factores que hace de Sigrid una herramienta rápida, sencilla y de gran potencia, pudiendo almacenar millones de datos sin que se vea por eso afectada en su funcionamiento.
Las tablas contienen campos que almacenarán un dato específico. Tablas y campos se identifican por un nombre, por ejemplo la tabla cob (cobros) tiene entre otros el campo tot para almacenar el importe del efecto, y el campo fecven para almacenar la fecha de vencimiento.
Los nombres de tablas y campos suelen ser lo suficientemente descriptivos para poder relacionarlos con su contenido, sin embargo se utilizan nombres con el menor número de caracteres posible lo que facilita el teclear expresiones de búsqueda o sentencias SQL.
Como consecuencia de la complejidad de la gestión empresarial, la base de datos tiene más de un centenar de tablas. En este tema se explican las más importantes, las que constituyen el corazón de la aplicación, pudiendo conocer la estructura completa utilizando el documentador de la base de datos.
Si ya es usuario de la aplicación conocerá lo que es un Concepto, y que los Conceptos pueden organizarse en una estructura de padres e hijos. Los atributos o propiedades comunes a todos los conceptos se almacenan en la tabla con.
Brevemente se explican los campos de esta tabla:
ide es un identificador numérico o clave única para el concepto, es generado automáticamente por la aplicación, esta es la clave con la que la tabla de conceptos se relaciona con el resto de las tablas.
tip - tipo de concepto. Los tipos de conceptos se codifican en la tabla tip.
cod - código que el usuario asigna al concepto.
res - descripción o resumen del concepto.
fec - fecha del concepto. Las fechas se almacenan en la base de datos en formato aaaammdd.
tex - es el texto asociado al concepto, se edita seleccionando Ventana Texto.
cee - indicador de si el concepto es o no modificable.
est - es un número de estado de los codificados en la tabla conest para el tipo de Concepto.
delo - código de delegación origen, a la que pertenece el usuario que creó el Concepto. Será un código de los codificados en la tabla auxiliar de delegaciones, asignado al usuario en gestión de usuarios/roles. Este campo, así como el campo del, el campo obr y doc, se utilizarán si se establece el Modo de trabajo con delegaciones y obra en los parámetros de la empresa.
del - código de delegación destino, o delegación a la que se imputa el Concepto. Si se ha establecido el Modo de trabajo con delegaciones y obras se grabará automáticamente la delegación de trabajo seleccionada al crear el Concepto. Es un código de la tabla auxiliar de delegaciones.
obr - código de centro de coste u obra, se grabará automáticamente la obra de trabajo cuando se ha establecido el Modo de trabajo con delegaciones y obras.
doc - número de expediente
Los tipos de Conceptos están predeterminados, es decir, puede modificar determinadas propiedades de un tipo dado, pero no podrá eliminar un tipo de Concepto o añadir uno nuevo. El nombre de la tabla en la que se almacenan las propiedades de cada tipo de Concepto es igual a los tres últimos caracteres del código de tipo es decir:
Los Conceptos de tipo 1, de código TIPCAR, Carpetas, almacenan sus propiedades en la tabla car, los de tipo 5, Proveedores, de código TIPPRV almacenan sus propiedades en la tabla prv, y así sucesivamente.
Las tablas que almacenan las propiedades específicas de los Conceptos se relacionan con la tabla con a través del campo ide. Por ejemplo, si el Concepto de ide igual a 132567 es de tipo 1, que corresponde a Carpetas, existirá en la tabla car un registro con ide 132567 que almacenará las propiedades propias de la carpeta.
Así, la lista de Conceptos clientes se obtiene con la siguiente sentencia:
SELECT cod, res FROM con WHERE tip = 5 ORDER BY res
Ahora bien, si además se necesita el CIF de los clientes, será necesario combinar la tabla con con la tabla cli a través del campo ide:
SELECT con.cod, con.res, cli.cif FROM con, cli WHERE con.tip=5 AND con.ide = cli.ide
Puesto que las sentencias SELECT son examinadas por la aplicación antes de ser enviadas al motor de base de datos, puede utilizar los códigos de tipos de Conceptos en lugar del número. Por ejemplo, para recuperar el Plan General Contable (grupos de cuentas y cuentas auxiliares):
SELECT cod, res, tex FROM con WHERE tip=TIPCUG
UNION
SELECT cod, res, tex FROM con WHERE tip=TIPCUA
ORDER BY cod
La tabla rcc - Relaciones padre-hijo de los conceptos almacena la organización jerárquica entre Conceptos, siendo:
ide - el identificador del registro o clave única de la tabla.
com - el identificador del concepto padre.
des - el identificador del concepto hijo.
pos - lugar o posición que ocupa el concepto hijo de entre sus conceptos hermanos.
El campo pos figura en muchas de las tablas con el mismo significado que en la tabla rcc. La aplicación utiliza un algoritmo especial para asignar este número, de forma que deja números libres entre dos conceptos consecutivos Este sistema facilita el movimiento de conceptos dentro de la lista, evitando tener que modificar el valor de pos de los conceptos que no han cambiado su posición. Por ejemplo, en una lista de conceptos que tenga los siguientes valores de pos:
Concepto 1 128
Concepto 2 142
Concepto 3 265
Concepto 4 287
....
cuando se quiere modificar la lista moviendo el Concepto 4 entre los conceptos 1 y 2, se le asignará un número entre 128 y 142, manteniendo el valor de pos del resto de los conceptos.
Existen además otras tablas que no almacenan conceptos:
•Tablas con datos que constituyen el detalle de algún concepto, por ejemplo: la tabla apu registra los apuntes de los asientos contables, la tabla dcfpro almacena las líneas de detalle de las facturas de compra, la tabla condir que contiene las direcciones postales de los conceptos, regiva registro de IVA, etc.
•Tablas que relacionan la tabla de conceptos con otras tablas. Por ejemplo: la tabla rac relaciona un Concepto (factura, cobro, etc.) con el asiento contable en el que se ha contabilizado.
•Tablas auxiliares, cuyo nombre empieza por aux, como auxban que almacena las entidades bancarias y sus sucursales, auxfan que codifica las familias de productos, o auxpag que registra las formas de pago.
•Tablas de codificación de estados de los conceptos conest.
•Tablas de configuración bassegint (Seguridad de interfaz) y algunas otras que irá descubriendo a medida que consulte el documentador.
Un ejemplo es la tabla apu que almacena los apuntes contables:
apu - Apuntes Contables
Campo |
Clave externa |
Tipo |
Descripción |
ide |
|
dbLong |
Identificador |
asiide |
asi |
dbLong |
ide del Asiento |
fec |
|
dbLong |
Fecha del Asiento |
cod |
|
dbText(24) |
Código del Asiento |
pos |
|
dbLong |
Posición |
cueide |
cua |
dbLong |
Ide de la cuenta auxiliar |
deb |
|
dbDouble |
Debe |
hab |
|
dbDouble |
Haber |
res |
|
dbText(48) |
Descripción |
pun |
|
dbLong |
Punteo |
tex |
|
dbMemo |
Texto u observaciones |
Para obtener las cuentas auxiliares con sus saldos del ejercicio 2010 hay que construir la siguiente sentencia:
SELECT con.cod, con.res, sum (apu.deb - apu.hab)
FROM con, apu
WHERE apu.cueide = con.ide and apu.fec >= 2010
GROUP BY con.cod, con.res ORDER BY con.cod
Un diario de apuntes contables se obtendrá con la siguiente sentencia:
SELECT apu.fec as fecha, apu.cod as código, apu.res as resumen, con.cod as cuenta, con.res as titulo, apu.deb as debe, apu.hab as haber
FROM apu, con
WHERE con.tip=TIPCUA and apu.cueide=con.ide
ORDER BY apu.fec, apu.cod