Duda de diseño ¿Identificadores Unicos?

31/12/2004 - 10:14 por Marcos | Informe spam
Antes de nada FELIZ NAVIDAD Y PROSPERO 2005 a todos.

Ahora la pregunta : La cuestión es que estoy diseñando un Crm (Gestión de
Clientes)
para un Pyme y modelando la BD de datos me han aconsejado que utilize
identificadores
únicos como tipo de datos en mis claves principales de las Tablas
importantes, yo
pensaba utilizar un campo de tipo Bigint con un sistema de incremento
aparte

Consideraciones:
-El sistema en un principio se va llenar de datos que provienen de
diferentes origenes (volcado de cientos de registros)
-Nunca he trabajado con este tipo de datos; he leido algo en los BOL sobre
como generarlos a traves de NewID
-La interfaz final será una aplicación web en AspNet

¿Q me decis? ¿Cuál es más recomendable?
¿Si me decidiese por uid ,como genero este en el volcado de registros a cada
tabla?

Gracias

Preguntas similare

Leer las respuestas

#1 qwalgrande
31/12/2004 - 12:59 | Informe spam
Hola.

El uso de uniqueidentifier no está justificado con lo que comentas, es
decir, basándome sólo en lo que me comentas, yo no lo haría. Usaría un tipo
int, con autoincremental si quieres como método de generación, mucho más
pequeño y mucho más manejable para la indexación, sobre todo para la
indexación de las claves primarias. Los tipos de datos, cuanto más pequeños
mejor.

qwalgrande.

"Marcos" wrote:

Antes de nada FELIZ NAVIDAD Y PROSPERO 2005 a todos.

Ahora la pregunta : La cuestión es que estoy diseñando un Crm (Gestión de
Clientes)
para un Pyme y modelando la BD de datos me han aconsejado que utilize
identificadores
únicos como tipo de datos en mis claves principales de las Tablas
importantes, yo
pensaba utilizar un campo de tipo Bigint con un sistema de incremento
aparte

Consideraciones:
-El sistema en un principio se va llenar de datos que provienen de
diferentes origenes (volcado de cientos de registros)
-Nunca he trabajado con este tipo de datos; he leido algo en los BOL sobre
como generarlos a traves de NewID
-La interfaz final será una aplicación web en AspNet

¿Q me decis? ¿Cuál es más recomendable?
¿Si me decidiese por uid ,como genero este en el volcado de registros a cada
tabla?

Gracias




Respuesta Responder a este mensaje
#2 MAXI
31/12/2004 - 17:45 | Informe spam
Hola, te paso un articulo que escribi sobre el tema, quizas te sea de
utilidad

http://www.microsoft.com/spanish/ms...art187.asp




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

Msn Messenger:

"Marcos" escribió en el mensaje
news:
Antes de nada FELIZ NAVIDAD Y PROSPERO 2005 a todos.

Ahora la pregunta : La cuestión es que estoy diseñando un Crm (Gestión de
Clientes)
para un Pyme y modelando la BD de datos me han aconsejado que utilize
identificadores
únicos como tipo de datos en mis claves principales de las Tablas
importantes, yo
pensaba utilizar un campo de tipo Bigint con un sistema de incremento
aparte

Consideraciones:
-El sistema en un principio se va llenar de datos que provienen de
diferentes origenes (volcado de cientos de registros)
-Nunca he trabajado con este tipo de datos; he leido algo en los BOL sobre
como generarlos a traves de NewID
-La interfaz final será una aplicación web en AspNet

¿Q me decis? ¿Cuál es más recomendable?
¿Si me decidiese por uid ,como genero este en el volcado de registros a
cada tabla?

Gracias



Respuesta Responder a este mensaje
#3 Salvador Ramos
03/01/2005 - 09:42 | Informe spam
Hola:

Aquí tienes un resumen de un largo hilo sobre ese tema, resumido por Carlos
Sacristán:
http://www.configuracionesintegrale...p?articulo!9

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Marcos" escribió en el mensaje
news:
Antes de nada FELIZ NAVIDAD Y PROSPERO 2005 a todos.

Ahora la pregunta : La cuestión es que estoy diseñando un Crm (Gestión de
Clientes)
para un Pyme y modelando la BD de datos me han aconsejado que utilize
identificadores
únicos como tipo de datos en mis claves principales de las Tablas
importantes, yo
pensaba utilizar un campo de tipo Bigint con un sistema de incremento
aparte

Consideraciones:
-El sistema en un principio se va llenar de datos que provienen de
diferentes origenes (volcado de cientos de registros)
-Nunca he trabajado con este tipo de datos; he leido algo en los BOL sobre
como generarlos a traves de NewID
-La interfaz final será una aplicación web en AspNet

¿Q me decis? ¿Cuál es más recomendable?
¿Si me decidiese por uid ,como genero este en el volcado de registros a
cada tabla?

Gracias



Respuesta Responder a este mensaje
#4 Marcos
03/01/2005 - 15:07 | Informe spam
Hola que tal?
Gracias por contestar.
Tu artículo me ha parecido muy interesante, de hecho creo que ya lo había
leido antes pero no lo recordaba.
Pero tengo algunos interregontes:
¿Como podría utilizarlo para el volcado de 200 registros por ejemplo?
Para un volcado inicial:

-yo he pensado hacer lo siguiente definir la clave primaria como int e
identidad comenzando en el mismo valor que he definido en la tabla
Numeradores (referida en tu articulo),
y una vez terminado el volcado de registros armar un St Procedure Para la
inserccion de nuevos registros utilizando tu sugerencia.
cambiando de la clave primaria la propiedad de identidad

-Que te parece el apaño ? Es un poco chapuza pero es lo que se me ha
ocurrido

¿Alguna sugerencia?

"MAXI" escribió en el mensaje
news:
Hola, te paso un articulo que escribi sobre el tema, quizas te sea de
utilidad

http://www.microsoft.com/spanish/ms...art187.asp




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

Msn Messenger:

"Marcos" escribió en el mensaje
news:
Antes de nada FELIZ NAVIDAD Y PROSPERO 2005 a todos.

Ahora la pregunta : La cuestión es que estoy diseñando un Crm (Gestión de
Clientes)
para un Pyme y modelando la BD de datos me han aconsejado que utilize
identificadores
únicos como tipo de datos en mis claves principales de las Tablas
importantes, yo
pensaba utilizar un campo de tipo Bigint con un sistema de incremento
aparte

Consideraciones:
-El sistema en un principio se va llenar de datos que provienen de
diferentes origenes (volcado de cientos de registros)
-Nunca he trabajado con este tipo de datos; he leido algo en los BOL
sobre como generarlos a traves de NewID
-La interfaz final será una aplicación web en AspNet

¿Q me decis? ¿Cuál es más recomendable?
¿Si me decidiese por uid ,como genero este en el volcado de registros a
cada tabla?

Gracias







Respuesta Responder a este mensaje
#5 MAXI
04/01/2005 - 00:44 | Informe spam
Hola, una insercion masiva la podrias hacer con una select numerando
registros y sumandole 1 por ej.

CREATE TABLE #FACT (ID INT, CLIENTE VARCHAR(100))

INSERT INTO #FACT VALUES (1,'INTEL')

CREATE TABLE #FACT2 (CLIENTE VARCHAR(100))
GO

INSERT INTO #FACT2 VALUES ('AMD')
INSERT INTO #FACT2 VALUES ('MICROSOFT')
INSERT INTO #FACT2 VALUES ('HP')

INSERT INTO #FACT
SELECT (SELECT COUNT(*) FROM #FACT2 CL WHERE CL.CLIENTE <= #FACT2.CLIENTE) +
(SELECT MAX(ID) FROM #FACT)
,CLIENTE
FROM #FACT2
ORDER BY CLIENTE

SELECT * FROM #FACT


Esto podria ser una forma.

Un abrazo



Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

"Marcos" escribió en el mensaje
news:%
Hola que tal?
Gracias por contestar.
Tu artículo me ha parecido muy interesante, de hecho creo que ya lo había
leido antes pero no lo recordaba.
Pero tengo algunos interregontes:
¿Como podría utilizarlo para el volcado de 200 registros por ejemplo?
Para un volcado inicial:

-yo he pensado hacer lo siguiente definir la clave primaria como int e
identidad comenzando en el mismo valor que he definido en la tabla
Numeradores (referida en tu articulo),
y una vez terminado el volcado de registros armar un St Procedure Para la
inserccion de nuevos registros utilizando tu sugerencia.
cambiando de la clave primaria la propiedad de identidad

-Que te parece el apaño ? Es un poco chapuza pero es lo que se me ha
ocurrido

¿Alguna sugerencia?

"MAXI" escribió en el mensaje
news:
Hola, te paso un articulo que escribi sobre el tema, quizas te sea de
utilidad

http://www.microsoft.com/spanish/ms...art187.asp




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

Msn Messenger:

"Marcos" escribió en el mensaje
news:
Antes de nada FELIZ NAVIDAD Y PROSPERO 2005 a todos.

Ahora la pregunta : La cuestión es que estoy diseñando un Crm (Gestión
de Clientes)
para un Pyme y modelando la BD de datos me han aconsejado que utilize
identificadores
únicos como tipo de datos en mis claves principales de las Tablas
importantes, yo
pensaba utilizar un campo de tipo Bigint con un sistema de incremento
aparte

Consideraciones:
-El sistema en un principio se va llenar de datos que provienen de
diferentes origenes (volcado de cientos de registros)
-Nunca he trabajado con este tipo de datos; he leido algo en los BOL
sobre como generarlos a traves de NewID
-La interfaz final será una aplicación web en AspNet

¿Q me decis? ¿Cuál es más recomendable?
¿Si me decidiese por uid ,como genero este en el volcado de registros a
cada tabla?

Gracias











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