Planteamiento
Algo que es habitual cuando diseñamos la estructura de la base de datos de nuestra aplicación es la creación de las relaciones entre tablas. Al crear dichas relaciones en las tablas se añaden campos de tipo de enlace maestro. Si este campo lo añadimos usando las herramientas del esquema, el asiente de creación de tablas o la opción de la toolbar del editor de tabla, además de crearse el campo puntero a maestro se crea su correspondiente índice de tipo acepta repetidas. Sin embargo, en ocasiones creamos estos campos de forma manual o duplicando otro campo puntero a maestro. En estos caso no se crea el índice. Y ya te adelanto que no es conveniente eliminar estos índices que se crean automáticamente.
Esto es importante
Lo que quiero comentarte con este artículo es que es muy importante que todos los campos punteros a maestro de nuestras tablas tengan sus correspondientes índices, no importa si son de clave única o acepta repetidas, tampoco importa si le añadimos más campos al índice, lo que sí importa es que el índice no tenga ninguna condición, es decir que indexe todos los registros. En caso de necesitar crear algún índice condicionado podemos hacerlo adicionalmente dejando siempre al menos un índice creado sin condición por el cual se pueda construir de forma automática un enlace plural en la tabla maestra.
¿Por qué es tan importante esta recomendación?
Existen varias razones que te contaré en este artículo y una más realmente importante que contaré en el próximo artículo que versará sobre los índices complejos y una aparentemente clara incidencia que realmente no lo es.
- La integridad referencial en nuestra base de datos es uno de los aspectos más críticos para garantizar la fiabilidad y calidad de la información almacenada. Esta integridad se basa en la existencia de los enlaces plurales que ayudan a que no podamos eliminar registros de tablas maestras que tengan registros plurales o históricos en otras tablas. Por ejemplo, que no me deje eliminar un artículo si existen movimientos de compras o ventas de dicho artículo. Si no creamos estos índices que son el origen de esos enlaces plurales estamos poniendo en peligro la integridad referencial de la base de datos.
- El cambio de código puede tener un efecto desastroso. Una de las características más importantes de una base de datos es la fiabilidad. Cuando en una tabla modificamos el código o campo ID esperamos que la base de datos refresque automáticamente el nuevo código en todos los registros plurales o históricos de nuestro registro. Eso realmente funciona muy bien, sin embargo el refresco no es posible aplicarlo en tablas que no tengan enlace plural por falta de un índice del campo puntero a maestro en la tabla plural. Además es importante que el índice no tenga condición para indexar ya que de ser así podría darse la circunstancia de que algunos registros plurales no refresquen el código con el nuevo valor al no cumplirse la condición de indexación.
Aplica esta buena práctica para tener una base de datos fiable
Estas 2 razones son realmente importantes y de peso como para pasarlas por alto. Por lo tanto la recomendación es clara. Crea siempre en tus tablas los índices de los campos punteros a maestro y que esos índices no tengan ninguna condición de indexación.
Deja una respuesta