Hola a todos.
Quiero realizar una base de datos que cumpla las siguientes especificaciones para controlar las gestiones realizadas por los empleados de una compañía con otras empresas. En una compañía tengo unos EMPLEADOS que realizan unas GESTIONES con otras EMPRESAS. En cuanto a los EMPLEADOS necesito sus datos típicos: nombre, teléfono, etc... En cuanto a las EMPRESAS lo mismo (nombre, persona de contacto, ...) además de un campo que indique si quedan gestiones por realizar con esta EMPRESA en el futuro o por el momento la relación está finalizada. Las GESTIONES simplemente necesitan una fecha y un campo de texto donde se explica en qué consite la gestión realizada. Las GESTIONES que se recogen son las que ya se han realizado, no hay necesidad de recoger las GESTIONES que haya que realizar en un futuro, ya que cuando se dé el caso de que quede pendiente una gestión para el futuro con un EMPRESA, bastará con actualizar dicho atributo de la EMPRESA.
Una GESTIÓN es realizada por uno o varios EMPLEADOS y con una única EMPRESA. Con una EMPRESA pueden haber realizado varias GESTIONES diferentes EMPLEADOS. Se pueden realizar varias GESTIONES con la misma EMPRESA, por distintos o por los mismos EMPLEADOS.
Las consultas que se pretenden realizar, aunque esto no creo que sea relevante para el diseño, son las normales que se desprenden de este escenario: qué EMPLEADOS han realizado qué GESTIONES y con qué EMPRESAS, qué EMPRESAS todavía tienen gestiones por realizar, etc.
Me gustaría que alguien me indicara si el diseño al que he llegado es correcto o se podría plasmar mejor de otra manera. A continuación podéis ver las cardinalidades y un esquema entidad relación (los atributos los he obviado y todos serían de las entidades, ninguno de la relación). He estado pensando en una relación binaria (en lugar de una ternaria) entre EMPLEADOS y EMPRESAS, donde lo que necesito conocer sobre las GESTIONES (fecha, etc.) son atributos de la relación entre estos, pero creo que eso no me sirve porque de ese modo un EMPLEADO sólo podría realacionarse con una EMPRESA una vez.
Card ((EMPLEADO,EMPRESA), reliaza) = (0,n)
Card ((EMPLEADO, GESTION), realiza) = (0,1)
Card ((GESTION, EMPRESA), realiza) = (0,n)
Cualquier orientación o cualquier cosa en la que yo no haya caído será bienvenida, ya que ando un poco perdido en BD. Muchas gracias.