Diagrama ER de la base de datos WordPress

Lo reconozco, soy un poco irascible y pocas cosas me sulfuran más que encontrarme con uno de los plugins de WordPress de calidad pésima (por desgracia bastantes, y lo digo por experiencia). A lo mejor alguien opina lo mismo de los nuestros (ya sabéis, eso de qué quién esté libre de culpa que tire la primera piedra) pero la verdad es que hacemos lo posible para cuidar su diseño y codificación.

De entre todos los posibles «pecados» de los plugins, el que para mi es más grave es el de tocar lo que no se debería, en especial las tablas de la base de datos de WordPress. Todos los demás componentes WordPress asumen que tu base de datos no ha sido modificada (al menos no las tablas que componen el núcleo de WordPress) con lo cualquier modificación por pequeña que sea pone en riesgo las actualizaciones futuras de WordPress, los backups automáticos que tengas definidos, los migraciones a otro servidor y un largo etcétera.

Es por esto que te pido, apreciado desarrollador de plugins WordPress, que te atengas a las siguientes reglas de diseño al crear tu plugin:

  1. No modificarás las tablas del núcleo de WordPress (cambiando tipos de datos de las columnas, añadiendo restricciones adicionales como claves foráneas, …).
  2. No extenderás las tablas del núcleo de WordPress con campos adicionales que sean obligatorios (NOT NULL, en terminología de base de datos). Esto haría que automáticamente cualquier otra función que estuviera añadiendo datos a esa misma tabla fallase inmediatamente.
  3. No extenderás las tablas del núcleo de WordPress con campos adicionales aunque sean opcionales o tengan valor por defecto. Si quieres añadir información adicional sobre las entradas o usuarios, utiliza las tablas wp_postmeta y wp_usermeta, respectivamente. Si quieres guardar información genérica, utiliza la tabla wp_options.
  4. No crearás nuevas tablas que no utilicen el prefijo definido por defecto en la instalación WordPress para los nombres de las tablas (típicamente el «wp_»). De este modo, por lo menos podemos identificar rápidamente que estas nuevas tablas son también parte del sitio WordPress.
  5. No crearás nuevas tablas.

Sé que esperar que sigas las cinco es mucho pedir pero para mi las cuatro primeras son de obligado cumplimiento y sólo en caso necesario aceptaría que rompieras la quinta, eso sí, minimizando el número de tablas. Al menos de esta forma el núcleo se mantiene y el usuario podrá identificar claramente las nuevas tablas y reconfigurar así sus estrategias de copia de seguridad, optimización, y similares.

Soy consciente de qué para ti es más fácil crear nuevas tablas que se ajusten perfectamente a lo que necesitas que aprovechar las opciones que ya te ofrece WordPress para conseguir el mismo resultado. Pero piensa en nosotros (los usuarios), te lo agradeceremos de corazón. En el futuro, tened en cuenta esta petición para los desarrolladores de plugins.

¿Añadirías alguna regla más? ¿Os parezco un exagerado? ¿Os viene a la cabeza algún plugin especialmente desastroso en este sentido?

3 respuestas a «¡Mis tablas, ni mirarlas! – Petición para los desarrolladores de plugins en WordPress»

  1. Avatar de Rafa Poveda

    Nada exagerado. Y en caso de necesitar echar mano de la quinta, mejor montar un servicio externo que conecte por API y que no fastidie WP.

    1. Avatar de Jordi Cabot

      No podría estar más de acuerdo. De hecho lo que comentas es exactamente lo que hacemos en Nelio A/B testing (http://wp-abtesting.com ) para gestionar los experimentos del usuario sin tener que añadir nuevas tablas en su instalación

      1. Avatar de Juan Padial
        Juan Padial

        Bueno, «nunca» es una palabra demasiado fuerte. Crear tablas nuevas puede estar totalmente justificado en algunos casos, por ejemplo si la estructura de una tabla y sus índices no encaja en la estructura e índices de ninguna de las tablas del core, aunque la verdad son casos raros, pero alguno he visto.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad de Nelio Software

Tus datos personales se almacenarán en SiteGround y serán usados por Nelio Software con el único objetivo de publicar tu comentario aquí. Con el envío de este comentario, nos das el consentimiento expreso para ello. Escríbenos para acceder, rectificar, limitar o eliminar tus datos personales.