Bases de Datos - Tabla con 12 registros o con 12 columnas

 
Vista:

Tabla con 12 registros o con 12 columnas

Publicado por Daniel Perez (1 intervención) el 11/07/2016 18:27:27
Hola. El día de hoy un programador me solicitó la creación de una nueva tabla. Es algo sencillo, pero me llevo a un debate con el programador.

La cuestión es que la tabla debe de almacenar un único valor por mes por año pero puede ser que un mes determinado no tenga valor.

Mi solución sería que cada año, hubiera 12 o menos registros. Algo como esto:

CREATE TABLE MESES
(ID INT IDENTITY(1,1) PRIMARY KEY
,MES TINYINT NOT NULL // solo aceptaría valores 1-12
,ANIO VARCHAR(4) NOT NULL // año en 4 digitos
,VALOR INT NOT NULL)

Pero el programador, para facilitar su codificación, quiere algo como esto:

CREATE TABLE MESES
(ID INT IDENTITY(1,1) PRIMARY KEY
,ANIO VARCHAR(4) NOT NULL
,VALORENE INT NULL
,VALORFEB INT NULL
,VALORMAR INT NULL
,VALORABR INT NULL
,VALORMAY INT NULL
,VALORJUN INT NULL
,VALORJUL INT NULL
,VALORAGO INT NULL
,VALORSEP INT NULL
,VALOROCT INT NULL
,VALORNOV INT NULL
,VALORDIC INT NULL)

En este caso los valores de los meses podrían ser nulos.

Yo insisto en que la primer forma es mas adecuada para lo que necesita, pero no encuentro como demostrarlo.

El argumento del programador es que haciéndolo de la primer forma, se crearían muchos registros. Con la segunda forma solo tendría un registro por año.

¿Alguna experiencia que hayan tenido con un tema similar?

De antemano muchas gracias por cualquier comentario =)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Tabla con 12 registros o con 12 columnas

Publicado por Lady Garay Gutierrez (8 intervenciones) el 16/07/2016 20:00:44
Las dos formas tienen pros y contras, yo digo que la primer forma sería más adecuada porque no tendrías que perder tanto el tiempo metiendo muchos valores y sólo ingresarías el mes que corresponde sin dejar ningun campo nulo, pero la segunda es más organizada, ya que si quieres hacer un select es más sencillo que poner el where en el caso de la primer forma.
La primer forma está bien pero si quieres mas organización, está mucho mejor la segunda.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar