sql >> Base de Datos >  >> RDS >> Mysql

Claves primarias de MySQL

Explica qué es una clave principal y por qué es una parte integral de las bases de datos relacionales.

Cuando creamos nuestras dos tablas, también creamos una clave principal para cada tabla.

Cuando expande los nodos en la izquierda SCHEMAS pestaña, puede ver las claves primarias (y las claves externas; las veremos a continuación) enumeradas debajo de cada tabla:

Como muestra la captura de pantalla adjunta, los Índices los nodos contienen índices (en nuestro caso, claves externas y/o claves primarias). Estas claves principales y claves externas solo están ahí porque las especificamos en nuestro código cuando creamos las tablas.

Específicamente, usamos PRIMARY KEY (FruitId) para hacer el FruitId columna la clave principal para Fruit tabla, y usamos PRIMARY KEY (UnitId) para hacer el UnitId columna la clave principal para las Unidades mesa.

¿Qué es una clave principal?

Una clave principal (también conocida como clave única ) es una columna que se ha asignado como campo de identificador único. El valor de una columna de clave principal es único para cada registro. En otras palabras, dos registros no pueden compartir el mismo valor en esa columna.

Un ejemplo clásico de un campo de clave principal es un campo "ID". La mayoría de las tablas tendrán un campo de ID que proporciona un identificador único para cada registro. Los ejemplos podrían incluir "CustomerId", "ProductId", "FruitId", etc. Sin campos de ID como estos, la función de su base de datos se vería gravemente obstaculizada. Si tuviera dos o más clientes con el mismo nombre, ¿cómo podría encontrar su registro? Si bien es cierto que posiblemente podría encontrar algo único en cada registro, es mucho más limpio y fácil tener una columna cuyo objetivo principal sea proporcionar una identificación única para cada registro.

Una lata primaria puede ser un valor normal que se garantiza que es único (un número ISBN para libros, código de producto, etc.), o puede ser un valor generado por la aplicación o DBMS específicamente para ser único (como un número único globalmente). identificador o entero de incremento automático).

Elegir una clave principal

Tenga cuidado al elegir una columna para su clave principal. Debe asegurarse de que cada registro tenga uno y que no haya posibilidad de que dos registros compartan el mismo valor o que un registro tenga más de un valor.

Por ejemplo, usar la dirección de correo electrónico del usuario podría funcionar en algunos casos, pero no es una base muy sólida para un identificador único. Los usuarios pueden cambiar su dirección de correo electrónico. Los usuarios pueden compartir direcciones de correo electrónico. Es posible que algunos usuarios no tengan una dirección de correo electrónico. Por supuesto, podría escribir su sistema para evitar que los usuarios cambien su dirección de correo electrónico o la compartan, pero su sistema no sería muy flexible ni fácil de usar.

Podría requerir que todos los usuarios tengan un nombre de usuario único. Eso podría funcionar. Sin embargo, debe pensar detenidamente en todas las posibilidades. Si existe la posibilidad de que los usuarios puedan cambiarlo o compartirlo (pasado, presente o futuro), no lo use como clave principal. ¿Qué pasa si "TechGuy12" desactiva su cuenta? ¿Eso significa que otro usuario ahora puede usar "TechGuy12"? ¿Será eso un problema para su aplicación o algún informe que necesite generar?

Si tiene alguna duda sobre la "exclusividad" de su campo de clave principal, use un número generado automáticamente que se incremente con cada registro creado.