Relaciones de una base de datos

Estoy creando una base de datos para mi empresa y estoy atascado con la estructuración de la misma, así como a la hora de definir las relaciones.

Básicamente son expedientes que se van a facturar a clientes. También técnicos que van a insertar una o varias notas de gastos/partes de trabajo a cada uno de los expedientes. En cada expediente hay una serie de tareas que hay que validar cuando se completen, pero también habrá que poder añadir tareas complementarias en algunos de los expedientes.

Finalmente necesito reportar los expedientes abiertos y sus tareas pendientes de ejecutar. Costo, facturado y beneficio. También emitir facturas.

¿Alguna ayuda? Creo que estoy creando pocas tablas con muchos campos.

1 respuesta

Respuesta
1

Con la información que das, yo veo las siguientes entidades del modelo de datos:

- Expedientes

- Clientes

- Notas

- Técnicos

- Tareas

- Facturas

Las relaciones podrían ser

Clientes->Expedientes 1 a varios

Clientes->Facturas 1 a varios

Expedientes->Notas 1 a varios

Técnicos->Notas 1 a varios

Tareas->Expedientes 1 a varios

Facturas->Expedientes 1 a varios (si vas a hacer facturas que contengan varios expedientes)

Luego a cada entidad le deberás poner los campos que le correspondan por su naturaleza y un campo que te permita haver las vinculadiones (Número de factura, número de cliente, número de expediente, ...)

No se si he respondido lo que necesitabas.

Respecto a las tareas me queda un tema pendiente.

Siempre va a haber una serie de tareas fijas en cada uno de los expedientes. Pero también, en algunos, se van a tener que insertar tareas complementarias. Cada una de las tareas tiene unos campos inherentes a ella, como responsable o fecha de inicio. Cómo distribuir y estructurar las tareas? 

Con lo comentas aparece una nueva entidad: los Empleados (responsables) que irian vinculados a las Tareas de 1 a varios.

El hecho de que haya tareas fijas y otras de complementarias, no me modifica el modelo de datos. En todo caso quizá deberías añadir a la tabla de tareas un atributo (campo) de tipo boleano que indique si se trata de una tarea fija o no. Ello te permitiría, cada vez que crees un expediente, generar una consulta o SQL que asocie al nuevo expediente todas las tareas "fijas", mientras que para las otras deberás crear algun tipo de formulario que te permita su inclusión a voluntad.

Ahora bien, esta estadarización te genera un nuevo problema, ya que un Expediente puede contener diversas tareas i una tarea estandarizada puede estar presente en varios expedientes (relación de varios a varios).

Sin conocer a fondo el proyecto, se me hace complicado saber cual es la mejor solución, pero a bote pronto se me ocurre crear una nueva entidad: Las Tareas Estandarizadas.

Esta tabla podria tener una relación de 1 a varios con la tabla de Tareas. La idea es que cada vez que creases un expediente nuevo, generases una o varias nuevas tareas para él, partiendo para ello de la tabla de Tareas Estandarizadas.

No se si me explico mucho o te estoy liando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas