2010-01-26 19 views
16

Quiero diseñar una base de datos que mantenga un registro de las transacciones financieras. Quiero diseñarlo como un producto para que pueda usarse para cualquier tipo de transacción financiera. ¿Hay algunos principios de diseño específicos para el diseño de bases de datos de transacciones financieras que puedan ayúdame a hacer que la base de datos sea más duradera a largo plazo con cambios mínimos de nivel arquitectónico. Algunos buenos ejemplos serán de gran ayuda también.Principios de diseño para el diseño de arquitectura de base de datos del sistema de transacciones financieras?

Gracias

Respuesta

18

Algunas cosas particulares a los sistemas financieros incluyen controles internos (T este es un término de contabilidad crítico, investigue para realmente pensar en esto). Cosas como la persona que ingresa el valor del cheque tampoco pueden aprobarlo. Cosas como usar procs almacenados y no SQL generados desde la aplicación para que pueda restringir los derechos a solo los procs (no hay ningún SQL dinámico para nada - en un sistema financiero) y para que los usuarios solo puedan hacer aquello para lo que están autorizados. No hay derechos para nadie excepto la producción dba y una alternativa a las tablas. El fraude es lo que intenta proteger al sistema no solo de los ataques externos. La seguridad es crítica para los sistemas financieros.

También necesita tablas de auditoría para saber quién cambió qué datos y cuándo y cuál era el valor anterior. Esta no es solo una forma adicional de ayudar a encontrar problemas si alguien esquiva los controles internos (o el sistema olvidó implementar algunos críticos) robó dinero, pero a menudo es fundamental poder deshacer un error sin tener que restaurarlo. En general, los sistemas de contabilidad a menudo tienen campos de datos que no son visibles para el usuario y que se generan a través de valores predeterminados o de una manera que el usuario no los ve.

Otra cosa es que necesita ver las acciones a tiempo para que las cosas que parezcan una relación natural deban desnormalizarse para preservar el costo en el momento en que ocurrió la acción. Entonces, si tiene una tabla de tarifas por hora, la usaría como una búsqueda para obtener la tasa en el momento de la acción y no se uniría a ella para obtener la tasa cuando realice la consulta.

Los sistemas financieros tienen datos privados en ellos, casi siempre, piense cómo va a proteger estos datos. Deberá cifrar y descifrar datos. Probablemente también quieras una copia de seguridad encriptada.

Estos datos son el alma de una empresa, es fundamental que tenga un buen plan de copias de seguridad y mucha práctica en la restauración. Las copias de seguridad fuera del sitio son fundamentales.

La integridad de los datos es fundamental. Necesita los tipos de datos correctos y necesita relaciones pk/fk, restricciones y factores desencadenantes para hacer cumplir las reglas.Un sistema financiero no puede permitirse tener registros huérfanos.

Debe tener en cuenta las eliminaciones con mucho cuidado. Los sistemas financieros a menudo realizan eliminaciones automáticas (marque los registros como eliminados para evitar perder datos históricos. Sí, la empresa XYZ ya no es un cliente, pero no desea perder el historial financiero de los pedidos que tenían en el pasado. Ni siquiera considere usar la eliminación en cascada en un sistema financiero

No solo hable con los contadores al diseñar el sistema, hable con la gente financiera que ejecutará el sistema y los auditores que auditarán los resultados Lea y conozca a fondo la norma contable publicada para el país que está diseñando. Mire las implicaciones impositivas. Esto es complejo.

Piense en los datos almacenados y archivados de datos Los sistemas financieros a menudo consultan los datos antiguos para informes, los informes son grandes, grandes, grandes para los sistemas financieros. Piense cómo hacerlo efectivamente sin afectar la entrada diaria de datos.

3

Dependiendo uno lo que en realidad se está tratando de lograr, para que pueda crear un sistema de "transacción financiera" que es útil que tendrá que enseñar a sí mismo acerca de revistas, libros y otros detalles de la contabilidad. No es tan simple como registrar las transacciones reales en una tabla ...

Realmente, no creo que encuentre principios de diseño de bases de datos para sistemas financieros que sean diferentes de cualquier sistema de base de datos que lo necesite la información es 100% correcta

Por lo tanto, la lectura de la siguiente cuando se trabaja con bases de datos no hace daño a nadie:

Database Design Best Practices

Do you source control your databases?

Database Development Mistakes Made by App Developers

What are some of your most useful database standards?

Cuestiones relacionadas