Espero que esta pregunta no sea demasiado amplia. En el futuro, es posible que necesite agregar algunos sistemas de contabilidad y seguimiento financiero a algunas aplicaciones (principalmente aplicaciones basadas en la web, pero mis preguntas también se refieren a las aplicaciones de escritorio).
Ahora, crear un registro simple de transacciones financieras es teóricamente fácil. Una tabla de base de datos con algunas columnas podría hacer el trabajo. Incluso MS Access, Excel, o incluso un simple archivo de texto ASCII podría usarse para almacenar fechas de transacciones, ID de cuentas y montos en dólares. Sin embargo, creo que incluso una tabla SQL respaldada con frecuencia con integridad transaccional podría no ser lo suficientemente robusta para un seguimiento financiero serio.
Escucho términos como "contabilidad de doble entrada", y tengo la sensación de que la mayoría de las aplicaciones de seguimiento financiero (por ejemplo, Mint.com o GnuCash) tienen una estructura o proceso de datos mucho más complicado para asegurarse de que todo se suma perfectamente, exactamente como debería, y que nunca se pierden ni corrompen datos.
Mi pregunta es: al diseñar una aplicación para rastrear transacciones financieras, ¿qué consideraciones especiales de diseño deben hacerse? Parece que podría haber tantos problemas potenciales ... problemas con la precisión del redondeo, las comprobaciones de paridad, algún tipo de proceso de auditoría, copias de seguridad especiales, seguridad / cifrado, formas adicionales de proteger los datos en el caso de un bloqueo a mitad de la entrada de datos. ... Realmente no sé qué debería preguntar específicamente, pero tengo la sensación de que la industria de la programación tiene un conjunto de mejores prácticas de las que no sé nada. ¿Qué son?
Editar:
Parece que abrí una lata de gusanos más grande de lo que esperaba. Para aclarar, estoy pensando específicamente en dos tipos de aplicaciones:
- Aplicaciones de tipo "Comprobar registro" como GnuCash o Quicken que mantienen un registro de las transacciones individuales para su propio uso.
- Aplicaciones que rastrean la facturación / crédito / o "puntos" para proveedores y clientes que tratan con una empresa.
Probablemente no haré ninguna actividad bancaria directa (AFAIK) que tenga un montón de regulaciones gubernamentales relacionadas con las finanzas.