simple reglas principios partida historia elementos ejercicios ejemplos doble contabilidad basica database database-design accounting

database - reglas - ¿Diseño de esquema de base de datos para un sistema de contabilidad de doble entrada?



principios de la partida doble (3)

  1. cree las siguientes tablas: cuenta, transacción, elemento de línea, contacto. un contacto puede ser un cliente, un proveedor o un empleado. para mantener las cosas simples, omitiremos la tabla account_type, la tabla contact_type, etc.

  2. identifique las relaciones entre las tablas y configúrelas.

a) un contacto puede tener muchas transacciones, pero cada transacción solo puede tener un contacto (relación de uno a muchos)

b) una cuenta puede tener muchas transacciones, y una transacción puede afectar muchas cuentas; lineitem es la tabla de unión entre la tabla de transacciones y la tabla de cuentas (una relación de muchos a muchos)

c) una transacción puede tener muchas líneas de pedido, pero cada línea de pedido debe estar relacionada con una transacción. Tenemos el siguiente esquema (una relación de uno a muchos):

CONTACTO> --- TRANSACCIÓN --- <LÍNEA DE LÍNEA> --- CUENTA

3 Agregue los campos apropiados a cada tabla. Contacto (contactID, name, addr1, addr2, ciudad, estado, código postal, teléfono, fax, correo electrónico, etc.). Transacción (transactionID, date, memo1, contactID, ref, line_itemID. Line_item (line_itemID, transactionID, accountID, amount, memo2). Cuenta (accountID, line_itemID, account_name, account_type).

4 Por ejemplo, para agregar una nueva transacción en la base de datos, agregar un nuevo registro en la tabla de transacciones y completar los campos, seleccionar un nombre de contacto, ingresar una fecha, etc. Luego, agregar nuevos registros secundarios al registro de transacciones principal para cada cuenta afectado. Cada registro de transacción debe tener al menos dos registros secundarios (en un sistema de contabilidad de doble entrada). Si compré algo de queso por $ 20 en efectivo, agregue un registro de niño al registro de la transacción, en el registro de niño, seleccione la cuenta de efectivo y registre -20.00 (negativo) en el campo de monto. Agregue un nuevo registro secundario, seleccione la cuenta de Comestibles y registre 20.00 (positivo) en el campo de cantidad. La suma de los registros secundarios debe ser cero (es decir, 20.00 - 20.00 = 0.00). Crea tantas transacciones nuevas como sea necesario.

5 Cree informes en la base de datos basados ​​en los datos almacenados en las tablas anteriores. La consulta para proporcionar todos los registros en la base de datos organizados de modo que los registros secundarios de la línea de pedido de transacción se agrupen por cuenta, ordenados por fecha y luego por ID de transacción. Cree un campo de cálculo que proporcione el total acumulado del campo de importe en los registros line_items de la transacción y cualquier otro campo de cálculo que considere necesario. Si prefiere mostrar los importes en formato de débito / crédito, cree dos campos de cálculo en la consulta de la base de datos que tengan un campo llamado débito y otro crédito llamado. En el campo de cálculo de débito, ingrese la fórmula "si la cantidad en el campo cantidad de la tabla line_item es positiva, muestre la cantidad, de lo contrario, nulo". En el campo de cálculo de crédito, ingrese la fórmula "si el importe en el campo de importe de la tabla de artículo de línea es negativo, muestre la cantidad, de lo contrario, nulo".

Basado en este diseño de base de datos bastante simple, puede agregar continuamente más campos, tablas e informes para agregar más complejidad a su base de datos para rastrear el suyo o las finanzas de su empresa.

¿Alguien sabe o tiene enlaces a sitios web que describan detalles de cómo diseñar un esquema de base de datos para un sistema de contabilidad de doble entrada?

Encontré un montón de artículos pero no fueron lo suficientemente explicativos. Agradecería que alguien pudiera ayudarme en esto.



Pensé que sería mejor que lo apuñale. Los comentarios son apreciados: voy a refinar el diseño en función de los comentarios de cualquier persona. Voy a utilizar la sintaxis de T-SQL de SQL Server (2005) por ahora , pero si alguien está interesado en otros idiomas, hágamelo saber y agregaré ejemplos adicionales.

En un sistema de contabilidad de doble entrada , los elementos básicos son cuentas y transacciones. La "teoría" básica es la ecuación contable : Equidad = Activos - Pasivos.

Combinando los ítems en la ecuación contable y dos tipos de cuentas nominales, Ingresos y Gastos, la organización básica de las cuentas es simplemente un bosque de cuentas anidadas, la raíz de los (mínimos) cinco árboles es una de: Activos, Pasivos, Patrimonio Neto , Ingresos y gastos.

[Estoy investigando buenos diseños de SQL para las jerarquías en general ... Lo actualizaré con detalles más adelante.]

Un diseño de jerarquía interesante está documentado en el artículo del equipo de SQL Más árboles y jerarquías en SQL .

Cada transacción consiste en montos equilibrados de débito y crédito. Para cada transacción, el total de las cantidades de débito y el total de las cantidades de crédito deben ser exactamente iguales. Cada monto de débito y crédito está vinculado a una cuenta.

[Mas para seguir ...]