duda sobre diseño de bd en sqlserver 2005

20/04/2009 - 09:08 por Camilo Felipe | Informe spam
Buenas a todos, estoy diseñando una base de datos para una aplicación
bastante grande y tengo un pequeño dilema. Tengo cinco campos que son
una especie de auditoria que quiero hacer a nivel de registro, los
campos son:

fecha_alta
fecha_modificacion
id_usuario_modificacion
ip_modificacion
eliminado

El id de cada registro de la base de datos es unico, incluso entre
tablas, es un una combinacion unica de 35 caracteres generada por el
servidor web que uso. Entonces tengo dos alternativas:

1.- Pongo los cinco campos en cada tabla de la base de datos.
2.- Creo una tabla nueva de la forma:

id
fecha_alta
fecha_modificacion
id_usuario_modificacion
ip_modificacion
eliminado

y guardo esta informacion comun a todos los registros en esta tabla,
al ser el id unico en toda la base de datos no tendre problemas de
integridad.

Mi pregunta es: cual de las dos variantes debo usar y por que?

Saludos, y espero vuestra respuesta, muchas gracias por adelantado

Preguntas similare

Leer las respuestas

#1 Maxi
20/04/2009 - 14:51 | Informe spam
Hola, a mi me gusta mas la variante de armar una tabla independiente porque
para mi son dos cosas distintas, una cosa es la operacion en si y otra
auditar


Salu2

Microsoft MVP SQL Server
Culminis Speaker
www.sqltotalconsulting.com

"Camilo Felipe" escribió en el mensaje
news:
Buenas a todos, estoy diseñando una base de datos para una aplicación
bastante grande y tengo un pequeño dilema. Tengo cinco campos que son
una especie de auditoria que quiero hacer a nivel de registro, los
campos son:

fecha_alta
fecha_modificacion
id_usuario_modificacion
ip_modificacion
eliminado

El id de cada registro de la base de datos es unico, incluso entre
tablas, es un una combinacion unica de 35 caracteres generada por el
servidor web que uso. Entonces tengo dos alternativas:

1.- Pongo los cinco campos en cada tabla de la base de datos.
2.- Creo una tabla nueva de la forma:

id
fecha_alta
fecha_modificacion
id_usuario_modificacion
ip_modificacion
eliminado

y guardo esta informacion comun a todos los registros en esta tabla,
al ser el id unico en toda la base de datos no tendre problemas de
integridad.

Mi pregunta es: cual de las dos variantes debo usar y por que?

Saludos, y espero vuestra respuesta, muchas gracias por adelantado
Respuesta Responder a este mensaje
#2 Camilo Felipe
20/04/2009 - 16:35 | Informe spam
On 20 abr, 14:51, "Maxi" wrote:
Hola, a mi me gusta mas la variante de armar una tabla independiente porque
para mi son dos cosas distintas, una cosa es la operacion en si y otra
auditar


Salu2

Microsoft MVP SQL Server
Culminis Speakerwww.sqltotalconsulting.com

"Camilo Felipe" escribió en el mensajenews:
Buenas a todos, estoy diseñando una base de datos para una aplicación
bastante grande y tengo un pequeño dilema. Tengo cinco campos que son
una especie de auditoria que quiero hacer a nivel de registro, los
campos son:

fecha_alta
fecha_modificacion
id_usuario_modificacion
ip_modificacion
eliminado

El id de cada registro de la base de datos es unico, incluso entre
tablas, es un una combinacion unica de 35 caracteres generada por el
servidor web que uso. Entonces tengo dos alternativas:

1.- Pongo los cinco campos en cada tabla de la base de datos.
2.- Creo una tabla nueva de la forma:

id
fecha_alta
fecha_modificacion
id_usuario_modificacion
ip_modificacion
eliminado

y guardo esta informacion comun a todos los registros en esta tabla,
al ser el id unico en toda la base de datos no tendre problemas de
integridad.

Mi pregunta es: cual de las dos variantes debo usar y por que?

Saludos, y espero vuestra respuesta, muchas gracias por adelantado



Ok muchas gracias Maxi
Respuesta Responder a este mensaje
#3 Camilo Felipe
20/04/2009 - 16:46 | Informe spam
On 20 abr, 14:51, "Maxi" wrote:
Hola, a mi me gusta mas la variante de armar una tabla independiente porque
para mi son dos cosas distintas, una cosa es la operacion en si y otra
auditar


Salu2

Microsoft MVP SQL Server
Culminis Speakerwww.sqltotalconsulting.com

"Camilo Felipe" escribió en el mensajenews:
Buenas a todos, estoy diseñando una base de datos para una aplicación
bastante grande y tengo un pequeño dilema. Tengo cinco campos que son
una especie de auditoria que quiero hacer a nivel de registro, los
campos son:

fecha_alta
fecha_modificacion
id_usuario_modificacion
ip_modificacion
eliminado

El id de cada registro de la base de datos es unico, incluso entre
tablas, es un una combinacion unica de 35 caracteres generada por el
servidor web que uso. Entonces tengo dos alternativas:

1.- Pongo los cinco campos en cada tabla de la base de datos.
2.- Creo una tabla nueva de la forma:

id
fecha_alta
fecha_modificacion
id_usuario_modificacion
ip_modificacion
eliminado

y guardo esta informacion comun a todos los registros en esta tabla,
al ser el id unico en toda la base de datos no tendre problemas de
integridad.

Mi pregunta es: cual de las dos variantes debo usar y por que?

Saludos, y espero vuestra respuesta, muchas gracias por adelantado



Tiene alguna desventaja lo de crear las cinco columnas en cada tabla
en cuanto al rendimiento, quiero decir, está claro que creando las
cinco columnas en una tabbla voy a tener un monton que columnas mas
que si creo las cinco columnas una sola bien en una tabla
independiente, pero esto la base de datos lo sufre de alguna manera
desde el punto de vista del rendimiento o es abosolutamente
indiferente o quizás la via de la unica tabla es peor desde el
punto de vista del rendimiento porque tendría que estar haciendo joins
a la hora de auditar???
Respuesta Responder a este mensaje
#4 Carlos Sacristan
20/04/2009 - 18:49 | Informe spam
Cuantas más columnas tenga el diseño de una tabla, más grande será el tamaño
del registro y más páginas serán necesarias para albergar la totalidad de la
tabla. Y ya no es sólo cuestión de espacio en el(los) disco(s) duro(s), sino
también de memoria, puesto que SQL Server lee todos los datos de memoria
(aunque previamente tenga que hacer una lectura física).

Así que sí, la respuesta es que el tamaño de la tabla sí afecta al
rendimiento.

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil. si ambas están congeladas."
Edward V. Berard, ingeniero informático

http://blogs.solidq.com/es/elrincondeldba

"Camilo Felipe" escribió en el mensaje
news:
On 20 abr, 14:51, "Maxi" wrote:
Hola, a mi me gusta mas la variante de armar una tabla independiente
porque
para mi son dos cosas distintas, una cosa es la operacion en si y otra
auditar


Salu2

Microsoft MVP SQL Server
Culminis Speakerwww.sqltotalconsulting.com

"Camilo Felipe" escribió en el
mensajenews:
Buenas a todos, estoy diseñando una base de datos para una aplicación
bastante grande y tengo un pequeño dilema. Tengo cinco campos que son
una especie de auditoria que quiero hacer a nivel de registro, los
campos son:

fecha_alta
fecha_modificacion
id_usuario_modificacion
ip_modificacion
eliminado

El id de cada registro de la base de datos es unico, incluso entre
tablas, es un una combinacion unica de 35 caracteres generada por el
servidor web que uso. Entonces tengo dos alternativas:

1.- Pongo los cinco campos en cada tabla de la base de datos.
2.- Creo una tabla nueva de la forma:

id
fecha_alta
fecha_modificacion
id_usuario_modificacion
ip_modificacion
eliminado

y guardo esta informacion comun a todos los registros en esta tabla,
al ser el id unico en toda la base de datos no tendre problemas de
integridad.

Mi pregunta es: cual de las dos variantes debo usar y por que?

Saludos, y espero vuestra respuesta, muchas gracias por adelantado



Tiene alguna desventaja lo de crear las cinco columnas en cada tabla
en cuanto al rendimiento, quiero decir, está claro que creando las
cinco columnas en una tabbla voy a tener un monton que columnas mas
que si creo las cinco columnas una sola bien en una tabla
independiente, pero esto la base de datos lo sufre de alguna manera
desde el punto de vista del rendimiento o es abosolutamente
indiferente o quizás la via de la unica tabla es peor desde el
punto de vista del rendimiento porque tendría que estar haciendo joins
a la hora de auditar???
Respuesta Responder a este mensaje
#5 Camilo Felipe
21/04/2009 - 18:17 | Informe spam
On 20 abr, 18:49, "Carlos Sacristan" <nomail> wrote:
Cuantas más columnas tenga el diseño de una tabla, más grande será el tamaño
del registro y más páginas serán necesarias para albergar la totalidad de la
tabla. Y ya no es sólo cuestión de espacio en el(los) disco(s) duro(s), sino
también de memoria, puesto que SQL Server lee todos los datos de memoria
(aunque previamente tenga que hacer una lectura física).

Así que sí, la respuesta es que el tamaño de la tabla sí afecta al
rendimiento.

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil. si ambas están congeladas."
Edward V. Berard, ingeniero informático

http://blogs.solidq.com/es/elrincondeldba

"Camilo Felipe" escribió en el mensajenews:
On 20 abr, 14:51, "Maxi" wrote:



> Hola, a mi me gusta mas la variante de armar una tabla independiente
> porque
> para mi son dos cosas distintas, una cosa es la operacion en si y otra
> auditar


> Salu2

> Microsoft MVP SQL Server
> Culminis Speakerwww.sqltotalconsulting.com
>
> "Camilo Felipe" escribió en el
> mensajenews:
> Buenas a todos, estoy diseñando una base de datos para una aplicación
> bastante grande y tengo un pequeño dilema. Tengo cinco campos que son
> una especie de auditoria que quiero hacer a nivel de registro, los
> campos son:

> fecha_alta
> fecha_modificacion
> id_usuario_modificacion
> ip_modificacion
> eliminado

> El id de cada registro de la base de datos es unico, incluso entre
> tablas, es un una combinacion unica de 35 caracteres generada por el
> servidor web que uso. Entonces tengo dos alternativas:

> 1.- Pongo los cinco campos en cada tabla de la base de datos.
> 2.- Creo una tabla nueva de la forma:

> id
> fecha_alta
> fecha_modificacion
> id_usuario_modificacion
> ip_modificacion
> eliminado

> y guardo esta informacion comun a todos los registros en esta tabla,
> al ser el id unico en toda la base de datos no tendre problemas de
> integridad.

> Mi pregunta es: cual de las dos variantes debo usar y por que?

> Saludos, y espero vuestra respuesta, muchas gracias por adelantado

Tiene alguna desventaja lo de crear las cinco columnas en cada tabla
en cuanto al rendimiento, quiero decir, está claro que creando las
cinco columnas en una tabbla voy a tener un monton que columnas mas
que si creo las cinco columnas una sola bien en una tabla
independiente, pero esto la base de datos lo sufre de alguna manera
desde el punto de vista del rendimiento o es abosolutamente
indiferente o quizás la via de la unica tabla es peor desde el
punto de vista del rendimiento porque tendría que estar haciendo joins
a la hora de auditar???



Ok muchas gracias Carlos.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida