¿Debo usar prefijos en las columnas de las tablas de bases de datos?

El uso de prefijos en los nombres de las columnas de tablas en una base de datos es una cuestión de diseño y estilo, y no hay una respuesta única para todos los casos. La decisión de si debes usar prefijos o no depende de varios factores, pero vamos a hacer una pequeña comparación entre no usar prefijos y si usar.

use-column-prefixes

Usar prefijos

  1. Claridad y organización:
    • Ventaja: Los prefijos pueden hacer que sea más claro a qué entidad pertenecen las columnas. Por ejemplo, "per_id" indica que la columna pertenece a la entidad "persona".
    • Desventaja: Puede hacer que los nombres de columnas sean más largos y menos legibles.
  2. Evitar conflictos:
    • Ventaja: Ayuda a evitar conflictos o ambigüedades cuando se tienen tablas con nombres de columnas similares, como "producto_id" y "persona_id".
    • Desventaja: Puede resultar en nombres de columnas más largos y, en algunos casos, puede parecer redundante.
  3. Consistencia:
    • Ventaja: Ayuda a establecer una convención de nomenclatura consistente en toda la base de datos.
    • Desventaja: Puede parecer innecesario en algunas situaciones, especialmente cuando las tablas son claramente distintas.

No usar prefijos

  1. Sencillez:
    • Ventaja: Los nombres de columnas son más cortos y directos, lo que puede hacer que las consultas y el código sean más legibles y fáciles de escribir.
    • Desventaja: Puede haber ambigüedad si las tablas tienen columnas con nombres similares.
  2. Compatibilidad con ORM:
    • Ventaja: Algunos sistemas ORM (Object-Relational Mapping) pueden funcionar mejor con nombres de columnas sin prefijos, ya que asumen convenciones de nomenclatura específicas.
    • Desventaja: Puede requerir adaptaciones en el código o configuración del ORM si se utilizan nombres de columnas sin prefijos.
  3. Convenciones del lenguaje de programación:
    • Ventaja: En algunos lenguajes de programación, es común omitir los prefijos para las columnas de la base de datos, lo que puede facilitar la integración con aplicaciones.
    • Desventaja: Puede haber una falta de correspondencia con las convenciones de nomenclatura utilizadas en la base de datos.
Lo anterior demuestra que puede existir ciertas ventajas y desventajas en cada caso, pero ahora veamos que elijo y por qué, ya que las anteriores son datos obtenidos de distintas fuentes, simplificados para demostrar que cada persona encontrará su forma de diseñar y estructurar su base de datos. 

Lo que prefiero y ¿por qué?

En mi opinión prefiero no usar prefijos en las columnas principalmente porque evita la confusión al momento de realizar consultas, por ejemplo al momento de obtener los datos de un cliente por su cédula simplemente se hace una selección por la columna id_card y se evita tener que ir cada vez a la tabla a revisar el prefijo con el que esta actualmente, ya que por lo general los sistemas son desarrollados por equipos y no necesariamente van a poner siempre los mismos prefijos una persona pudo haber puesto emp_id_card otro em_id_card, etc, dificultando el trabajo en equipo además, se puede observar que el nombre del campo ahora tiene más caracteres.

Aparte de lo anterior encuentro las siguientes desventajas de usar los prefijos:

  1. Aumento de la complejidad: El uso de prefijos agrega una capa adicional de complejidad a los nombres de las columnas. Esto puede hacer que las consultas SQL sean más largas y difíciles de leer, lo que dificulta la escritura y comprensión de las consultas.
  2. Reducción de la legibilidad: Los prefijos pueden hacer que los nombres de columnas sean menos legibles. Por ejemplo, "emp_name" es menos claro que simplemente "name", ya que estamos dentro de la tabla employee, por ende claramente se ve que se refiere al nombre del empleado no es necesario recalcar com "emp". Esto puede dificultar la identificación de la función de una columna a simple vista.
  3. Espacio adicional en el almacenamiento: Los prefijos aumentan la longitud de los nombres de las columnas, lo que puede llevar a un mayor consumo de espacio en el almacenamiento de la base de datos. Aunque esto puede no ser significativo en bases de datos pequeñas, puede ser un problema en bases de datos muy grandes.
  4. Mayor riesgo de errores: Al utilizar prefijos, existe un mayor riesgo de errores de escritura en consultas SQL. Por ejemplo, podría ser más fácil cometer errores tipográficos al escribir "emp_name" en lugar de "name".
  5. Menos flexibilidad: El uso de prefijos puede limitar la flexibilidad en el diseño de la base de datos, ya que los nombres de las columnas deben seguir una convención específica. Esto puede dificultar la adaptación de la base de datos a nuevas necesidades o cambios en el negocio.
  6. No siempre es necesario: En algunos casos, el uso de prefijos puede ser innecesario, especialmente si las tablas tienen nombres únicos y descriptivos. Agregar prefijos a nombres de columnas puede ser redundante en tales situaciones.

¿Por qué las grandes empresas no usan prefijos?

El punto anterior mostró las desventajas que se pueden encontrar al usar prefijos, pero si aún no te convences vamos a tratar de averiguar por qué las grandes empresas como Google y Oracle evitan el uso de prefijos, aquí te muestro algunos puntos analizados de porque no usan prefijos.

  1. Nombres de tablas y columnas únicos y descriptivos: Estas empresas suelen seguir prácticas de diseño de bases de datos que enfatizan la creación de nombres de tablas y columnas únicos y descriptivos. Esto hace que los prefijos sean menos necesarios, ya que los nombres de las tablas y columnas por sí solos son lo suficientemente claros para identificar su propósito.
  2. Sistemas de gestión de bases de datos sofisticados: Empresas como Google y Oracle generalmente tienen acceso a sistemas de gestión de bases de datos (DBMS) muy sofisticados que pueden gestionar tablas y columnas con el mismo nombre en diferentes esquemas o bases de datos, lo que reduce la necesidad de prefijos para evitar conflictos de nombres.
  3. Convenciones internas de nomenclatura: Estas empresas pueden seguir convenciones internas de nomenclatura y reglas estrictas para evitar conflictos de nombres y garantizar que los nombres sean únicos en sus bases de datos. Estas convenciones pueden incluir prefijos en nombres de bases de datos o esquemas en lugar de columnas individuales.
  4. Optimización del rendimiento: En sistemas a gran escala como los que utilizan Google y Oracle, la optimización del rendimiento es crítica. El uso de nombres de columnas más cortos y descriptivos puede ser beneficioso para mantener el rendimiento de las consultas SQL a un nivel óptimo.
  5. Complejidad reducida: La adición de prefijos puede aumentar la complejidad de las consultas SQL y del diseño de bases de datos. En sistemas altamente complejos, simplificar la estructura de nombres puede ser preferible.

Conclusión

En resumen, no hay una regla estricta sobre si debes usar prefijos en los nombres de las columnas de tablas en una base de datos. La elección depende de tu preferencia, las necesidades de tu proyecto y cualquier estándar de nomenclatura que debas seguir. Lo más importante es ser coherente en la aplicación de la convención que elijas para mantener la consistencia y facilitar la administración de la base de datos.

Comentarios

Entradas populares