Hola, colegas. He creado la siguiente estructura de una Base de Datos para
el control de la elaboración de productos comestibles:



·         La tabla USUARIOS es para el control de acceso.

·         La tabla UNIDADES contiene las diferentes unidades de medida
(unidades, gramos, litros, etc.).

·         La tabla AREAS define las diferentes áreas de elaboración
(Legumier, Lunch, Cocina Central, etc.).

·         La tabla DESTINOS define los destinos para los cuales se
elaborarán determinados productos.

·         La tabla PRODUCTOS incluye a todos los productos que se elaborarán
y los productos que se usarán como materia prima para la elaboración. Un
producto elaborado puede ser un ingrediente (materia prima de otro producto
elaborado, por eso los incluyo en la misma tabla y los diferencio con el
campo lógico es_elaborado). Por ejemplo, la sal es un producto industrial y
por eso no requiere ninguna elaboración (es_elaborado=.F.) pero un sándwich
de jamón y queso sí es un producto elaborado (es_elaborado=.T.) y uno de sus
ingredientes es el pan, el cual a su vez también es un producto elaborado.

·         La tabla RECETAS define todas las recetas (ingredientes y su
cantidad) para cada uno de los productos elaborados. Esta tabla tiene una
doble relación con la tabla PRODUCTOS debido a los índices de los productos
elaborados (id_elabora) y de los ingredientes (id_product).

·         La tabla ORDENES es la que registra todas las solicitudes de
elaboración de productos. Esta tabla contiene una referencia circular en la
relación del campo clave id con el campo id_padre. Esto se debe a que, por
ejemplo, si el área de elaboración “Lunch” recibe una orden para fabricar 10
sándwiches de jamón y queso, el sistema debería generar automáticamente una
orden de elaboración de 10 panes para el área de elaboración “Panadería”, y
entonces utilizo el campo id_padre en la orden de elaboración de esos 10
panes para saber que su elaboración se encuentra subordinada a la
elaboración de los 10 sándwiches de jamón y queso.

Hasta ahora este diseño es lo único que tengo hecho y me gustaría saber la
opinión de ustedes y escuchar sus sugerencias antes de lanzarme a codificar
la interface de usuario. Tengo algunas preguntas:

1.       ¿No hay ninguna dificultad con la doble relación entre las tablas
PRODUCTOS y RECETAS?

2.       ¿No es un problema tener una referencia circular con la relación
entre dos campos de una misma tabla (id e id_padre)?

3.       ¿Me aconsejan el uso de procedimientos almacenados o esto sería un
problema si decido migrar la Base de Datos a otro formato (MSSQL, MySQL,
Access, …)?

Esperando su acostumbrada atención y con mi eterno agradecimiento por su
colaboración desinteresada.

Ing. Tomás Corrales Lemoine

 

<<image001.jpg>>

Responder a