He estado codificando con MySQL DBs desde hace un par de años y nunca he usado una clave externa. Ahora, entiendo que una clave externa es como una ID en una tabla que corresponde con una clave primaria de otra tabla. Tengo una tabla de usuario en mi sitio y probablemente alrededor de otras 10 tablas que se corresponden con la clave principal de mi tabla de usuario; sin embargo, no están configuradas como claves externas.Para usar una clave externa en MySQL o no?
¿Qué me estoy perdiendo al no tener estas otras 10 tablas con una clave externa? Quiero decir, hasta donde puedo decir, básicamente son una clave externa, excepto que no tienen ese valor guardado/asignado a ellos en la base de datos.
¿Hay alguna otra ventaja aquí de la que no estoy al tanto?
También me doy cuenta de que una clave principal no puede ser nula, pero puede ser una clave externa. Esto nunca será un problema en mi caso ya que se creó mi tabla de usuarios, y cuando se agrega un nuevo usuario a mi tabla de usuarios, agrego su entrada apropiada a las otras 10 tablas.
Estoy viendo un montón de "usted puede hacerlo usted mismo en el código" en las respuestas aquí, y está muy equivocado. No puedo contar cuántas bases de datos he visto que se han convertido en un lío de datos no válidos en el transcurso de meses y años. Sin excepción, cada uno de ellos habría estado perfectamente limpio si la integridad referencial se hubiera aplicado correctamente en el esquema. Las claves externas no son opcionales, son un componente clave del buen diseño de la base de datos. –