Pieza 1 de este rompecabezas sin fin.
Estimulé a usar MySQL Workbench. Y enseñé 2 conceptos interesantes:

  1. Qué es un ER Diagram / Model.
  2. Qué es un EER Diagram / Model.

Preludio

En los últimos años hemos vivido con encantador entusiasmo la experiencia de probar una tras otra un sin número de aplicaciones web llenas de ideas innovadoras. Y, para ser sinceros, son estás aplicaciones (junto con los videojuegos), las que han llenado de vida a nuestro segundo hogar (teniendo presente que el primero solo le lleva pocos puntos de ventaja) llamado internet. Y es que internet es ya para muchos nuestro medio de comunicación super hiper ultra archi preferido y para muchos otros también nuestra herramienta laboral mediante la cual conseguimos el “pan de cada día”.

En vista de esta proliferación entusiasta de aplicaciones web es practicamente imposible, como desarrolladores, no contagiarse de las poderosas ganas de querer desarrollar algo que colabore a manterner el flujo de vida del planeta internet. Sin embargo, desarrollar una aplicación y llevar a cabo nuestro objetivo no va a resultar tan sencillo como parecía ser pues en el camino vamos a encontrarnos con una serie de impaces que tendremos que ir saltando uno a uno.

Entre los más conocidos obstáculos está el “¿Qué hago?” o mejor conocido como “La idea”. Otro de los más conocidos, y en el cual se va a centrar esta serie de vídeo artículos es el “¿Cómo lo hago?” o mejor traducido como “¿Cómo lo programo?”. Y no es que no sepamos programar. En realidad, el verdadero problema radica en nuestra poca experiencia como desarrolladores. Pongamos un ejemplo.

Es un 99% probable que nuestra aplicación web vaya a tener un formulario que le permita a los usuarios loguearse dentro del site. A simple vista un formulario de logueo es muy sencillo de programar pues basta con unas pocas validaciones y una consulta a la base de datos. Pero muchas veces no tenemos en cuenta otros procedimientos que deberíamos incluir dentro del proceso de logueo. Por ejemplo, alguna vez se ha preguntado: “¿qué debo de hacer para que mi proceso de logueo impida la ‘Inyección SQL’?” o “¿Cómo impido que las cookies creadas manualmente sean aceptadas como válidas por mi proceso de logueo?”. Quizá estos aspectos no le sean familiares o simplemente no les haya prestado la debida atención. Pero recuerde siempre que si su aplicación tiene buena acogida por parte de sus “cohabitantes planetarios” (usuarios asiduos de internet) estos aspectos se convertirán en fundamentos sólidos de su aplicación.

Ahora la pregunta es: “¿Cómo llevo a cabo estos procedimientos?”. Es muy probable que estos aspectos no los haya aprendido dentro de su instituto, universidad, centro de estudios o por cuenta propia. Lo que nos lleva a preguntarnos: “¿De donde lo puedo aprender?”. La primera respuesta obvia es: Internet. Si usted busca en el planeta internet cómo llevar a cabo los procedimientos mencionados anteriormente seguro que hallará un sin fin de respuestas. Lo malo de esta vía es que no todas las respuestas serán óptimas y encima de todo puede que nos lleve un buen tiempo el tener que probar todas y cada una de ellas hasta encontrar una que realmente funcione bien. Ahora, hay otra forma de resolver esta clase de obstáculos y que muchas veces pasa como desapercibida: las aplicaciones open source.

Hay muchas aplicaciones open source de amplia aceptación por parte de la comunidad de usuarios de internet. Aplicaciones que en su momento se encontraron con los mismos obstáculos de programación y que supieron sobrepasarlos con notas sobresalientes. Ojo que no estoy estimulando a usar aplicaciones open source, el punto es: ¿porqué no estudiamos el código de aplicaciones que hacen lo que queremos y aplicamos sus métodos (métodos, no sus estructuras) en nuestras aplicaciones propias? Personalmente creo que esta es una forma más rápida de aprender a hacer lo que queremos.

Y es justo aquí donde nace “Desarmando WordPress”. Una seríe de vídeo artículos dedicados a “desarmar” WordPress de tal manera que podamos aprender de sus buenas prácticas tanto en el diseño de base de datos como en programación. Nótese que WordPress no es ni menos un “cúmulo absoluto de buenas prácticas” pero sin embargo sí tiene muchas y es más que seguro que podemos aprender de ellas.

Esta será la Pieza 1 de algo que he llamado “el rompecabezas sin fin”.

Tengan en cuenta que…

Por lo general las explicaciones de cada pieza las encontrarán en el vídeo. El artículo solo mostrará contenido pertinente del vídeo o complementario al mismo.

El esqueleto de WordPress

Toda buena aplicación comienza con el diseño de su esqueleto o de su “base de datos”. La base de datos le dará la estructura adecuada a nuestra aplicación para que esta sea lo suficientemente flexible en caso de necesidad. Recuerden que WordPress tiene un subdomain en donde se publica su documentación oficial y que es conocido como el “codex” de WordPress. Ahí podremos encontrar el diseño actual de su base de datos.

¿ERD?

La primera duda que salta a la vista es: ¿Qué es un ERD?. Estoy seguro que la gran mayoría de ustedes conocen qué es un ERD pero recuerden que un buen maestro nunca debe dar por sentado que sus alumnos entienden todos y cada uno de los términos que se están mencionado.

Un ERD o “Entity Relationship Diagram” o “Diagrama entidad relación” se podría definir en palabras sencillas como: “el dibujito de las tablas de la base de datos conectadas por rayitas a las que se les llama relaciones”. ¿Y entonces porqué el nombre “Diagrama entidad relación”?. Un diagrama es un dibujito. Una entidad es una tabla. Y una relación es una rayita que conecta las tablas. So simple.

¿Cómo hago un ERD?

Para hacer un ERD es necesario una aplicación (ya sea web o de escritorio) que nos permita llevar a cabo la tarea. En el caso de WordPress la aplicación que usó para dibujar su ERD se llama “MySQL WorkBench“. Sin embargo recuerden que se pueden usar muchas otras. Cada cual según su preferencia.

Para aquellos que decidan usar MySQL WorkBench recuerden que son necesarios ciertos requisitos (al menos fueron los que yo necesité):

  • Windows XP SP3. Tienen que descargar la versión del mismo idioma que su sistema operativo (no cometan mi error).
  • .Net 4 Client (para lo cual tuve que descargar también el “Windows Imaging Component”).

¿EER?

Curiosamente al usar MySQL WorkBench no encontraremos el acrónimo ERD. En su lugar encontraremos el acrónimo EER o “Enhanced Entity Relationship” o “Entidad relación mejorada” o “Entidad relación extendida”. EER se podría definir sencillamente como: “ERD con algunas cositas añadidas”. Y es que los ingenieros del mundo físico (no internet) no tuvieron mejor idea que usar el acrónimo EER depués de añadir algunas mejoras (en su mayoría conceptuales) al ERD. Al ser MySQL WorkBench un software “actualizado” obviamente usa EER (evolución de ERD) pero en terminos prácticos vendría a ser lo mismo.

Footer

Charty es la persona encargada del diseño del site de orifichu (hasta el momento no lo termina). Si se le hace mención durante el vídeo es porque inicialmente este sería un proyecto privado pero se decidió hacer público en beneficio de la humanidad internautica.

Atte. orifichu