hola gente, tengo la siguiente pregunta:
¿Me conviene usar siempre que se pueda las claves naturales (ej: DNI) en mis tablas o usar un clave artificial (ej: ID identity(1,1)) ?
Un abrazo. gracias...
| |||
¿Claves naturales o artificiales? hola gente, tengo la siguiente pregunta: ¿Me conviene usar siempre que se pueda las claves naturales (ej: DNI) en mis tablas o usar un clave artificial (ej: ID identity(1,1)) ? Un abrazo. gracias... |
| |||
Respuesta: ¿Claves naturales o artificiales? Si no fuera identity y yo le asignara el valor, ¿convienen las claves naturales o artificiales en mis tablas ? tabla empleados: dni (pk) nombre apellido 0 idEmpleado (pk) dni (unique) nombre apellido Última edición por scroogle; 15/05/2012 a las 10:17 |
| ||||
Respuesta: ¿Claves naturales o artificiales? Bueno, ahi depende de las reglas de negocio (el caso que pones), es muy claro que tus 2 campos (dni y idEmpleado), no se pueden repetir, entonces, cualquiera de las 2 prodria pasar a ser una PRIMARY KEY
__________________ MCTS Isaias Islas |
| |||
Respuesta: ¿Claves naturales o artificiales? Cita: Que tal iislas, cuando hablas de renumeracion... podrias explicar un poco mas en detalle a que te estas refieriendo con este termino?Gracias |
| ||||
Respuesta: ¿Claves naturales o artificiales? Hola que tal, bueno lo que pasa es que si tu tienes los siguientes datos: 1 2 3 y haces un delete al 2, te quedaria: 1 3 No se renumera el 3 por el 2. Depende como vas a utilizar la tabla, es si te sirve un IDENTITY o tu mismo estarla numerando. |
| |||
Respuesta: ¿Claves naturales o artificiales? Cita: Gracias por el ejemplo, en base al mismo, cree una tabla con dos campos: id int IDENTITY ; nombre char(10)Cuando fui insertando los distintos nombres el campo ID se fue incrementando en una unidad. Quise probar lo que vos propones en el ejemplo, y al borrar el nombre correspondiente al ID 2, el registro nro 3 (ID = 3) no se renumero al 2... entonces en Sql Server 2008 los IDENTITYS NO SE REORDENAN??? Aclarenmelo, gracias! |
| ||||
Respuesta: ¿Claves naturales o artificiales? Ya se te dijo que NO, no se reordenan y se vas a guardar (almacenar) numeros, hazlo en el tipo de dato correspondiente (INT, BIGINT, DECIMAL, FLOAT, etc).
__________________ MCTS Isaias Islas |
| |||
Respuesta: ¿Claves naturales o artificiales? Pero el ejemplo que posteó drako_darpan, a que tipo de dato corresponde??? No es el caso del IDENTITY? |
| ||||
Respuesta: ¿Claves naturales o artificiales? Una vez mas, los campos IDENTITY, al momento de borrar o "sufrir" una inserccion masiva fallida, NO SE RENUMERAN.
__________________ MCTS Isaias Islas |
| |||
Respuesta: ¿Claves naturales o artificiales? Cita: Quedó mas que claro! entonces las claves del tipo IDENTITY no se renumeran... ahora quiero saber si un tipo de dato int definido como PRIMARY KEY puede renumerarse???Existe alguna clave o constraint que permita renumeración al hacer un delete? Gracias iislas! |
| ||||
Respuesta: ¿Claves naturales o artificiales? NO, tendrias que hacer un MAX(TUCAMPO) + 1 Pero si borras registros intermediaos, ¿como los renumeras? Solo que hicieras un proceso de renumerar todos tus registros, despues de un delete, pero no lo creo eficiente ni conveniente.
__________________ MCTS Isaias Islas |
| |||
Respuesta: ¿Claves naturales o artificiales? Cita: Bien iislas, y ya que estas te consulto, volviendo al ejemplo anterior,el campo ID (int) como IDENTITY VS. el mismo campo pero como PRIMARY KEY Cual es mas eficiente en la busqueda de una clave? Deberia ser la PRIMARY KEY, pero me gustaria que me den alguna justificacion tecnica del porque... Gracias |
| ||||
Respuesta: ¿Claves naturales o artificiales? Creo que no tienes ni idea que es una PRIMARY KEY, este, es una columna (s) que te permiten NO REPETIR los registros en tu tabla, ademas de que te sirven para realizar el constrain de liga vs otras tablas (DRI). Nada que ver con la eficiencia o no de las busquedas. Para declarar la PK debe tomarse en cuenta que las columnas que la conforman, no deberan sufrir modificacion alguna. Lee este articulo de Carlos Sacristan: http://www.helpdna.net/sqlserver_cla...tificiales.htm
__________________ MCTS Isaias Islas |
Etiquetas: |