Doble plural
Tablas submaestras.
Tablas históricas.
Realizamos el análisis para una aplicación de gestión para una empresa que se dedica a instalar lunas en automóviles.
Hemos de tener en cuenta los siguientes puntos:
Un vehículo se identifica por una marca, una serie y un modelo. Por ejemplo: marca Acme, serie Coyote, modelo 2019.
La empresa dispone de diversos tipos de lunas que son suministradas por distintos fabricantes.
Un determinado tipo de luna puede ser suministrado por más de un fabricante.
Un tipo concreto de modelo puede tener varios tipos de luna.
Empezaremos por crear las tablas MARCAS, SERIES y MODELOS, ya que éstas identifican inequívocamente a un vehículo.
Está claro que una serie no puede existir sin una marca, de igual modo que un modelo no puede existir sin una serie. Es por esto que definimos la tabla MARCAS como maestro normal con clave numérica, SERIES será submaestra de MARCAS y MODELOS será submaestra de SERIES.
Al crear las tablas, se crean directamente los enlaces entre ellas por haber definido SERIES y MODELOS como submaestras: SERIES será plural de MARCAS, mientras que MODELOS será plural tanto de SERIES como de MARCAS.
Por otro lado, la empresa dispone de diversos tipos de lunas que son suministradas por diversos fabricantes. Esto justifica la creación de las tablas ARTÍCULOS y FABRICANTES. Ahora bien, ¿cómo las enlazamos? Volvamos a enunciar las frases:
"Los artículos del fabricante".
"Los fabricantes del artículo".
En este caso nos encontramos con un plural en los dos sentidos, lo que nos impide enlazar directamente ambas tablas mediante un enlace singular-plural.
Para resolver un doble plural creamos una tabla en medio de las otras dos.
En este caso crearemos una tabla de tipo histórico que llamaremos Artículos de los fabricantes (FAB_ART). Cada uno de los registros de la tabla FAB_ART consistirá en una pareja Artículo-Fabricante, de modo que en ella guardamos todos los artículos de cada fabricante (o de otro modo, todos los fabricantes de cada artículo). Entonces, dado un fabricante podemos navegar hacia sus plurales, que son todos los registros de la tabla FAB_ART, y una vez cargados éstos, obtener todos sus maestros de la tabla ARTÍCULOS. De este modo obtenemos todos los artículos del fabricante de partida.
De igual modo procederíamos para obtener todos los fabricantes de un artículo.
Aún nos queda por integrar en el diseño un detalle: en un modelo pueden instalarse distintos artículos (lunas), y una luna puede instalarse en distintos modelos. Nos encontramos de nuevo con doble plural, luego hemos de enlazar las tablas ARTÍCULOS y MODELOS mediante una tabla intermediaria de tipo histórico a la que llamaremos MOD_ART, que funciona de igual forma que la tabla FAB_ART.
Como enlazamos con la tabla MODELOS, al ser ésta submaestra, nos enlaza de forma automática con MARCAS y SERIES.