none
Utilidad clave primária autonumérica (ID) RRS feed

  • Pregunta

  • Buenas tardes,

    estoy creando una tabla intermedia de dos tablas principales. Esta tabla intermedia contiene dos claves foráneas, que son evidentemente, claves principales en esas dos tablas.

    El tema es que he visto en las best practice, que la tabla debe tener una clave primaria. He pensado en poner una clave primaria auto numérica (ID), pero no acabo de ver que sentido tiene hacer esto, si no voy a usar es clave primaria. ¿Me lo podéis aclarar?

    Muchas gracias!

    jueves, 3 de agosto de 2017 14:45

Respuestas

  • Hola que tal.

    La clave primaria como best practice, normalmente se refiere por un lado para la unicidad de los registros y por otro lado si es un indice de tipo Clustered por un tema de performance.

    Ahora bien, el tema de las claves primarias, tiene todo su desarrollo y debate entre claves naturales y claves subrogadas (o artificiales). El problema principal es cuando las tablas comienzas a crecer considerablemente y la performance se convierte en un tema.

    Te dejo un link (lamentablemente en ingles) con mucha discusión sobre el tema de diseño/performance.

    https://www.sqlskills.com/blogs/kimberly/more-considerations-for-the-clustering-key-the-clustered-index-debate-continues/

    Saludos!


    Mariano K.

    • Marcado como respuesta Moderador M miércoles, 9 de agosto de 2017 21:53
    jueves, 3 de agosto de 2017 15:16
  • Una tabla intermedia es una tabla de unión de dos referencias, si el valor de ambas referencias no se repiten entonces ambas son candidatas para componer la clave primaria dejando sin sentido una clave subrogada (auto-numérica). Si por el contrario, las referencias podrían repetirse (por ejemplo, para una venta se permite registrar el mismo producto en más de una línea por un tema de promociones asociadas) entonces necesitas "reforzar" la clave primaria o decidir por una clave subrogada.


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Marcado como respuesta Moderador M miércoles, 9 de agosto de 2017 21:53
    jueves, 3 de agosto de 2017 15:22
  • Lo que estás viendo cuando tiene una tabla que solo se compone de llaves primarias normalmente es una tabla de enlace para relaciones muchos a muchos. 
    • Marcado como respuesta Moderador M miércoles, 9 de agosto de 2017 21:53
    jueves, 3 de agosto de 2017 15:26

Todas las respuestas

  • Hola que tal.

    La clave primaria como best practice, normalmente se refiere por un lado para la unicidad de los registros y por otro lado si es un indice de tipo Clustered por un tema de performance.

    Ahora bien, el tema de las claves primarias, tiene todo su desarrollo y debate entre claves naturales y claves subrogadas (o artificiales). El problema principal es cuando las tablas comienzas a crecer considerablemente y la performance se convierte en un tema.

    Te dejo un link (lamentablemente en ingles) con mucha discusión sobre el tema de diseño/performance.

    https://www.sqlskills.com/blogs/kimberly/more-considerations-for-the-clustering-key-the-clustered-index-debate-continues/

    Saludos!


    Mariano K.

    • Marcado como respuesta Moderador M miércoles, 9 de agosto de 2017 21:53
    jueves, 3 de agosto de 2017 15:16
  • Una tabla intermedia es una tabla de unión de dos referencias, si el valor de ambas referencias no se repiten entonces ambas son candidatas para componer la clave primaria dejando sin sentido una clave subrogada (auto-numérica). Si por el contrario, las referencias podrían repetirse (por ejemplo, para una venta se permite registrar el mismo producto en más de una línea por un tema de promociones asociadas) entonces necesitas "reforzar" la clave primaria o decidir por una clave subrogada.


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Marcado como respuesta Moderador M miércoles, 9 de agosto de 2017 21:53
    jueves, 3 de agosto de 2017 15:22
  • Lo que estás viendo cuando tiene una tabla que solo se compone de llaves primarias normalmente es una tabla de enlace para relaciones muchos a muchos. 
    • Marcado como respuesta Moderador M miércoles, 9 de agosto de 2017 21:53
    jueves, 3 de agosto de 2017 15:26