Primary Key en campo Descripción

18/02/2008 - 16:44 por Alberto | Informe spam
Tengo una tabla que contiene una serie de descripciones (categorías de
productos). Actualmente tengo un campo identidad que actúa como clave
primaria y la descripción de dicha categoría.

Tal y como lo tengo hecho, antes de insertar una nueva categoría tengo que
comprobar que no está ya en la tabla por lo que me gustaría saber si el
campo descripción podría ponerlo como clave primaria y, sobre todo, si sería
eficiente. La descripción es un texto de unos 30 caracteres y la tabla no
tendrá más de 30-40 filas.

Gracias.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
18/02/2008 - 16:55 | Informe spam
Alberto,

Si la columna no acepta valor NULL, entonces te recomiendo que crees una
restriccion de unicidad y dejes la columna identity como clave primaria (y
que use clustered).

create table dbo.t1 (
c1 int not null identity(1, 1) cosntraint pk_t1 primary key,
c2 varchar(30) not null constraint uq_t1_c2 unique
)

La recomendacion se basa en que si luego vas a referenciar esa tabla usando
una restriccion de clave foranea, podras usar la columna identity (si es
entera solo 4 bytes) y no la descripcion que puede ocupar hasta 30 bytes.

AMB

"Alberto" wrote:

Tengo una tabla que contiene una serie de descripciones (categorías de
productos). Actualmente tengo un campo identidad que actúa como clave
primaria y la descripción de dicha categoría.

Tal y como lo tengo hecho, antes de insertar una nueva categoría tengo que
comprobar que no está ya en la tabla por lo que me gustaría saber si el
campo descripción podría ponerlo como clave primaria y, sobre todo, si sería
eficiente. La descripción es un texto de unos 30 caracteres y la tabla no
tendrá más de 30-40 filas.

Gracias.



Respuesta Responder a este mensaje
#2 Alberto
18/02/2008 - 19:16 | Informe spam
Muchas gracias!! No me había dado cuenta de esta restricción.

"Alejandro Mesa" escribió en el
mensaje news:
Alberto,

Si la columna no acepta valor NULL, entonces te recomiendo que crees una
restriccion de unicidad y dejes la columna identity como clave primaria (y
que use clustered).

create table dbo.t1 (
c1 int not null identity(1, 1) cosntraint pk_t1 primary key,
c2 varchar(30) not null constraint uq_t1_c2 unique
)

La recomendacion se basa en que si luego vas a referenciar esa tabla
usando
una restriccion de clave foranea, podras usar la columna identity (si es
entera solo 4 bytes) y no la descripcion que puede ocupar hasta 30 bytes.

AMB

"Alberto" wrote:

Tengo una tabla que contiene una serie de descripciones (categorías de
productos). Actualmente tengo un campo identidad que actúa como clave
primaria y la descripción de dicha categoría.

Tal y como lo tengo hecho, antes de insertar una nueva categoría tengo
que
comprobar que no está ya en la tabla por lo que me gustaría saber si el
campo descripción podría ponerlo como clave primaria y, sobre todo, si
sería
eficiente. La descripción es un texto de unos 30 caracteres y la tabla no
tendrá más de 30-40 filas.

Gracias.



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