Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Consejos para diseño de tablas

Estas en el tema de Consejos para diseño de tablas en el foro de Bases de Datos General en Foros del Web. Hola a tod@s, Estoy trabajando con una BD ya creada en la cual existe una tabla para registrar las horas trabajadas definida de la siguiente ...
  #1 (permalink)  
Antiguo 19/12/2008, 02:55
 
Fecha de Ingreso: diciembre-2007
Mensajes: 100
Antigüedad: 16 años, 5 meses
Puntos: 0
Consejos para diseño de tablas

Hola a tod@s,

Estoy trabajando con una BD ya creada en la cual existe una tabla para registrar las horas trabajadas definida de la siguiente manera:

Código:
Tabla HORAS_MES
id_proyecto: Código del proyecto al que se imputan las  horas
id_empleado: Código del empleado que las imputa
mes:  Mes en el que asignan las horas
Año: Año en el que se asignan
n_horas: Numero de horas que ese empleado en ese año y en ese mes ha trabajado en ese proyecto
La clave de esta tabla está compuesta por los valores uqe resalto en negrita, de este modo no puede existir un registro duplicado donde el mismo empleado impute horas al mismo poyecto el mismo año y el mismo mes.

Ahora se ha creado un tipo particular de proyecto donde las horas deben imputarse semanalmente por lo que se ha creado una tabla idéntica a la anterior pero añadiendo además un campo SEMANA


Código:
Tabla HORAS_SEMANA
id_proyecto: Código del proyecto al que se imputan las  horas
id_empleado: Código del empleado que las imputa
mes:  Mes en el que asignan las horas
Año: Año en el que se asignan
semana: Semana del mes y año a la que se imputan las horas
n_horas: Numero de horas que ese empleado en ese año y en ese mes ha trabajado en ese proyecto
Se quiere reflejar en la tabla HORAS_MES la suma de HORAS_SEMANA de un empleado en ese proyecto así que por coherencia, en HORAS_SEMANA no deben existir registros que no estén enlazados con un registro de HORAS_MES.

A la hora de diseñar la tabla HORAS_SEMANA debería ponere una CLAVE EXTERNA de la tabla HORAS_MES, pero claro... me encuentro con que la clave de dicha tabla está formada por 4 campos me pierdo un poco.

Alguna sugerencia?

PD: Gracias por vuestra ayuda y perdón si me ha quedado demasiado largo el post.
  #2 (permalink)  
Antiguo 19/12/2008, 20:09
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Consejos para diseño de tablas

pues si quieres relacionar esas dos tablas solo lo podras hacer por los cuatro campos de la llave, y me parece que la primary key de horas semanas serian los cinco campos, incluyendo semana
__________________
Blogzote.com :-) Mi blog
  #3 (permalink)  
Antiguo 20/12/2008, 05:28
 
Fecha de Ingreso: diciembre-2007
Mensajes: 100
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Consejos para diseño de tablas

Hola, gracias por tu respuesta.

El problema es que no se como relacionar los cuatro campos en Access. Cuando lo intento me dice que no se encuentra ningún campo único en la tabla de la izquierda. ¿Cómo puedo conseguir eso en Access 2003?
  #4 (permalink)  
Antiguo 27/12/2008, 18:26
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: por ahi!!!
Mensajes: 113
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Consejos para diseño de tablas

Cita:
Iniciado por Sil_va Ver Mensaje
Hola, gracias por tu respuesta.

El problema es que no se como relacionar los cuatro campos en Access. ¿Cómo puedo conseguir eso en Access 2003?
El primer problema es que access no es una base de datos.
Igualmente se me ocurre que podes agregar ese campo a la tabla HORAS_MES
que parece no muy representativo ya que en realidad son las horas imputadas a cada proyecto.
HORAS_PROYECTO_IMPUTADAS

id_proyecto: Código del proyecto al que se imputan las horas
id_empleado: Código del empleado que las imputa
mes: Mes en el que asignan las horas
Año: Año en el que se asignan
semana: Semana del mes y año a la que se imputan las horas

si la semana es null no imputa por semana y solamente por año y mes.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:53.