SDCA – Sistema de datos contables para un autónomo – Diseño de la BBDD

Segun anuncie en linkedin (https://www.linkedin.com/pulse/empezando-un-proyecto-miguel-garcia-garcia), y como primer paso para definir un

sistema de base de datos para un autónomo

Es preciso definir la base de datos. Recordad que no intento solucionar todos los problemas contables, solo los que me puso por delante mi gestor….

Veamos primero las hojas de calculo que me piden que realice cada trimestreHoja de calculo para gestor

Esto, es lo que debo obtener trimestralmente, y desglosado por actividad, si tienes mas de una, tanto para las facturas que generamos, como para las que recibimos de nuestros proveedores…

Aunque la propuesta es hacerlo en una hoja de calculo, nuestra idea es disponer de una base de datos, que pueda construir esas hojas de calculo cuando nos interese, y, además, como queremos practicar mucho, el desarrollo lo haremos en varias partes, la primera crearemos una API web, que nos permitirá gestionar nuestra BBDD, y en la segunda desarrollaremos un aplicativo web Angular que nos permitirá atacar a la API para dejar información, o consultarla,y luego…hacerlo en Android, con Java, con React… cualquier cosa es posible, y veremos lo sencillo que es pasar de uno a otro, si lo hacemos bien… espero

Ampliando necesidades

Lo primero que se me ocurre es que sería interesante disponer de un sitio donde guardar los datos de nuestros clientes, eso nos ahorrará tener que estar repitiendo esa información; la asociamos a un numero, y listo. Pienso que algo como esto, bastará

DatosCliente-estructura MySQL

estructura de la tabla de clientes para la contabilidad de autónomos

Creo que queda todo bastante explicado.

Y hacemos algo semejante con los proveedores:

datosproveedor - estructura mysql

estructura de la tabla de proveedores para la contabilidad de autónomos

Solo haceros notar que estoy previendo un fichero de poblaciones, que me facilita el nombre de la población (cppob_nombre) y el código de provincia (cppro_id)

cp_poblacion- tabla de poblaciones

estructura de la tabla de poblaciones para la contabilidad de autónomos

Los datos de estadísticas, latitud y longitud, no hacen nada aquí, simplemente los tenia….

Tambien he preparado dos tablas más para identificar el tipo de cliente y el tipo de proveedor, por si los necesito clasificar de alguna manera…. de momento

Tabla de tipo cliente

Tabla de tipo de proveedor

Como os habréis imaginado, necesito una tabla para conseguir los nombres de las provincias, un poco ingenioso, si, ya que mi version, indica la CCAA a la que pertenece la provincia, y de paso, el nombre de la capital de provincia

Tabla de provincias

Y esta es la tabla de comunidades

Tabla de Comunidades autónomas

y por ultimo. la tabla con los nombres de países, que en mi definición, hay más cosas porque…las tenia, pero a vosotros os basta con crear un par de países o tres; y listo

Tabla de países

Las tablas de datos

Después de la preparación, tenemos que pensar en las tablas de datos, que serán las encargadas de guardar las facturas de clientes y proveedores, y, una mas, encargada de guardar documentos como imagenes…si queremos hacerlo

Tambien, en este caso, nos puede interesar en agrupar las facturas, por distintos conceptos; por ejemplo, las que emitimos, pas podemos agrupar por actividad,…las que recibimos, por tipo de gasto…

Osea que necesitamos un par de tablas de apoyo más, para las facturas de cliente, he pensado estos campos; ya veremos si más adelante los modifico

Tabla de tipos de factura cliente

La tabla de tipos de facturas para proveedores, es todavía mas sencilla, por lo que tiene todavía más posibilidades de tenerse que modificar, pero de momento….

Tabla de tipos de factura de proveedor

La tabla de facturas emitidas, podría ser algo así, aunque asumo que lo he simplificado mucho….

Tabla de facturas emitidas

No declaro el numero de factura como autonumérico, ya que deberemos indicar alli el numero de factura que ha asignado nuestro sistema de facturación, respecto a los porcentajes de IVA y de Retención, aunque figura en el tipo de facturación, creo que es posible que se tengan que modificar para algun caso, de forma que los asumiré y permitiré la modificación, cuando llegue el momento

Y ahora la tabla de facturas recibidas: ¿que tal, algo así?

Tabla de facturas recibidas

El detalle….

Hasta aquí, y, dejando aparte la simplificación que haya podido hacer (y que estoy dispuesto a discutir), esto proporciona una forma de llevar la contabilidad, mejor o peor, pero hoy en dia, pienso que dejarlo asi, no aporta mucho, entonces, porque no le añadimos algun tipo de soporte documental, para que nos podamos olvidar de acudir al archivo a buscar las cosas?

Mi propuesta es añadir una tabla mas, que guardara cualquier documento, como imagen, y nos permitirá realizar búsquedas sin acudir a los papeles.

El diseño de la tabla, podría ser este

Tabla de control de documentación

Fijaros que en principio, planteo la posibilidad de guardar cualquier documento, y podríamos ir aumentando la enumeración si queremos catalogarlos. En el momento actual, las enumeraciones FE y FR poseen números (en imgd_identificador) que nos llevan a las correspondientes facturas, el resto, de momento, no necesitan ese identificador, pero…podríamos decidir (luego ya veremos como programar) que si un contrato tiene relación con una factura, en imgd_clasificador podríamos indicar FR o FE, según que tipo de factura, y a continuacion el numero de factura…ya veremos…

Cuando termine la serie, compartiré todo el codigo, por si os sirve, aunque creo que podreis ir sacando ideas y aplicarlas a vuestro proyecto sin necesidad de que os pase nada….

Y hasta aquí, esta primera entrega de lo que quiero llamar SDCA (Sistema de Contabilidad Para Autónomos) …o quizás, SiDeCAr… ya veremos, en la próxima entrega empezamos el planteamiento de la API en PHP

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.
Esta entrada fue publicada en Formacion, PHP y MySQL/MariaDB, SQL y etiquetada , , , . Guarda el enlace permanente.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.