logo mysql workbench Problemas con las Foreign Keys en MySQL Workbench
En el anterior artículo vimos cómo Construir nuestro diagrama de Entidad-Relación mediante ingeniería inversa, pero hoy vamos a ver que este método puede generarnos un diagrama algo irreal con la relación entre tablas y puede generarnos problemas con las Foreign Keys en MySQL Workbench. Y el problema es que muchas de las aplicaciones de Open Source no han diseñado un modelo de datos correcto, informáticamente hablando. Me refiero a que las tablas deben ser nombradas en singular, no en plural, y esto ocasiona los problemas que os comento en esta ocasión.

Si nos fijamos en el siguiente diagrama, veremos que hay dos tablas en las que he señalado en rojo dos claves foráneas hacia la tabla Projects. Existían más claves de ese tipo en el restao de tablas, pero ya las he resuelto. Os explicaré cómo.
%name Problemas con las Foreign Keys en MySQL WorkbenchComo podéis ver, al establecer una relación entre la tabla Projects y la tabla Boards, se ha creado de forma automática una clave foránea llamada projects_id en la tabla Boards. Esto no debería de haber sido así, ya que esa tabla ya contiene una columna llamada project_id. Y tampoco debería ser así ya que la tabla en realidad no tiene esa columna. Esa columna se ha creado únicamente para poder visualizar una línea entre las dos tablas relacionadas. Vamos a resolver ese problema haciendo que la constraint señale a la columna project_id y no projects_id.

%name Problemas con las Foreign Keys en MySQL Workbench

Si seleccionamos la tabla Boards, se mostrará un panel inferior donde podemos cambiar la configuración de las columnas. Vemos que se ha añadido esa columna que no existe en realidad. Para solucionarlo, nos vamos a la pestaña Foreign Keys.

%name Problemas con las Foreign Keys en MySQL WorkbenchEn esta pestaña, seleccionamos en la parte de la izquierda la constraint que queremos modificar. En este caso solo se muestra una constraint. Y en la derecha nos aparecerá esa columna seleccionada como parte de la constraint. Lo que tenemos que es hacer es cambiarla por la clave primaria correcta. En este caso, project_id. Al hacerlo se nos habilitará a su derecha la un desplegable en Referenced Column, donde tendremos que indicar la columna que es Primary Key en la tabla Projects para que la constraint sea correcta.

%name Problemas con las Foreign Keys en MySQL Workbench

Una vez realizado esto, ya podemos eliminar la columna projects_id que ya dijimos que no existe en el modelo real. Nos vamos a la pestaña Columns y la eliminamos pulsando el botón derecho del ratón sobre ella y seleccionando la opción Deleted Selected.

%name Problemas con las Foreign Keys en MySQL Workbench

Si volvemos al diagrama, veremos que ya no aparece la columna projects_id en la parte inferior de la tabla Boards y que la línea de puntos que la une con la tabla Projects sale desde la columna project_id.

%name Problemas con las Foreign Keys en MySQL WorkbenchEsto es un claro ejemplo de que las bases de datos de aplicaciones libres no siempre tienen un diseño totalmente correcto. Todo esto sin hablar de que este modelo de datos sobre el que he realizado el ejemplo no traía ninguna constraint y las que veis en las imágenes las he creado yo mismo manualmente.

Dime qué te ha parecido el artículo...

rating off Problemas con las Foreign Keys en MySQL Workbenchrating off Problemas con las Foreign Keys en MySQL Workbenchrating off Problemas con las Foreign Keys en MySQL Workbenchrating off Problemas con las Foreign Keys en MySQL Workbenchrating off Problemas con las Foreign Keys en MySQL Workbench (Ninguna valoración todavía)
loading Problemas con las Foreign Keys en MySQL WorkbenchCargando…
Advertisements

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies

Veo que te gusta mi Blog...

Si te ha parecido interesante este artículo, no esperes a suscribirte a mi blog. Cuando vuelva a escribir otro seguro que te interesará y no desearás no haberte enterado. Puedes suscribirte con total tranquilidad de que no recibirás spam. Lo odio igual que tu. Solo quiero que aprendas cosas nuevas y te sientas agusto con mis artículos. ¡Gracias!

¡Gracias por suscribirte!

Pin It on Pinterest

Share This

Compártelo

¡Comparte este artículo con tus amigos!