Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

ayuda base de datos

anicaos

Bovino adolescente
Desde
29 Ago 2010
Mensajes
90
hola comunidad, ya estoy dando un buen de lata...
pero necesito ayuda
aun soy un estudiante y mi experiencia laboral en progra es muy poca, casi me he dedicado a reparacion y cosas de electronica..
pero les dejo un png de la base que estoy haciendo y mi problema es como relacionar todo con los empleados...
2r53fit.png



porque ayudar no esta de mas... :)
gracias!
 
Bueno, primero quitaría los campos hora_entrada y hora_salida de empleado, me imagino que esos campos definen el horario del empleado, así que crearía una tabla "horario" con su id, hora_entrada, hora_salida y la relacionaría con "empleado" con una tabla "horario_empleado" con id,id_horario,id_empleado, fecha (para que quede constancia de cuando un empleado cambio de horario). Esto, aparte de darte un registro histórico de los cambios de horarios de empleados te va a ahorrar espacio, pues es posible que muchos empleados tengan un mismo horario.

Ahora, los empleados pueden tener varios roles, por las tablas que veo se trata de un restaurante o servicio de comidas. Entonces me imagino que entre los empleados podría haber cocineros y quienes se dedican a vender. Crearía una tabla "puestos" con id, descripcion (para cocinero, vendedor, etc), y una relación de puestos a empleados.

Ya con los puestos de los empleados, podes relacionar la tabla "empleados" con "operacion_venta" ya que será un empleado (un vendedor) el que se encargue de concretar la operación. Y sabes que es un vendedor gracias a la tabla "puestos" a la que esta relacionada "empleados".

En la tabla "plato" también se podría relacionar a los empleados (cocinero en este caso), así sabrías a cargo de quien esta la elaboración de un plato específico.

Aparte, veo que manejas ventas, pero no hay una sola mención a los clientes que compran los platos. Podrías agregar una tabla clientes y relacionarla con "operación_venta", así se sabría quien compro, quien vendió y que se compro. El objetivo principal de la base de datos es la ayuda en la toma de decisiones. Agregando clientes podría saber que cliente compra más, en que mes, etc, que platillos se vende mas y cuales menos, etc.

La tabla "operacion_venta" solo te va a permitir vender un plato con una sola bebida. Habría que crear una tabla que fuera "detalle_operacion_venta" ya que van a haber ocasiones que tus clientes te pidan varios platos y bebidas diferentes. Como esta actualmente, para sacar el total de una venta con platos diferentes, creo que es imposible.

Entre la tabla "plato" y "precio_empresa" tambien le agregaría una tabla intermedia que relacione a ambas y una fecha correspondiente, de esta manera es posible cambiar los precios de los platos y saber cuando se cambio el precio.

Espero que te sea de ayuda.

Saludos!!
 
Las tablas de abarrotes, carnes y bebidas, comparten la misma informacion, entonces para mi, crearia una tabla unica llamada "Articulos", donde crearia un campo "IDTipo", con valores 1= Abarrotes, 2 = carnes, 3=Bebidas y esos tipos en otra tabla llamada "Tipos", por ejemplo. Asi te ahorras 2 tablas.

La tabla de "Cantidad", no me suena, me parece que te refieres a "TipoDeUnidad" o algo asi.

Las tablas de "venta", "operacion_venta", "plato" hay que retrabajarlas mas como dice "Salandrews". se puede hacer mas detallada y que de mas informacion.

Aunque a mi gusto, nos gustaria que explicaras mas a fondo el contexto del sistema, porque a mi punto de vista, se trata de un sistema de comedor con reloj checador.
 
gracias!

Bueno, primero quitaría los campos hora_entrada y hora_salida de empleado, me imagino que esos campos definen el horario del empleado, así que crearía una tabla "horario" con su id, hora_entrada, hora_salida y la relacionaría con "empleado" con una tabla "horario_empleado" con id,id_horario,id_empleado, fecha (para que quede constancia de cuando un empleado cambio de horario). Esto, aparte de darte un registro histórico de los cambios de horarios de empleados te va a ahorrar espacio, pues es posible que muchos empleados tengan un mismo horario.

Ahora, los empleados pueden tener varios roles, por las tablas que veo se trata de un restaurante o servicio de comidas. Entonces me imagino que entre los empleados podría haber cocineros y quienes se dedican a vender. Crearía una tabla "puestos" con id, descripcion (para cocinero, vendedor, etc), y una relación de puestos a empleados.

Ya con los puestos de los empleados, podes relacionar la tabla "empleados" con "operacion_venta" ya que será un empleado (un vendedor) el que se encargue de concretar la operación. Y sabes que es un vendedor gracias a la tabla "puestos" a la que esta relacionada "empleados".

En la tabla "plato" también se podría relacionar a los empleados (cocinero en este caso), así sabrías a cargo de quien esta la elaboración de un plato específico.

Aparte, veo que manejas ventas, pero no hay una sola mención a los clientes que compran los platos. Podrías agregar una tabla clientes y relacionarla con "operación_venta", así se sabría quien compro, quien vendió y que se compro. El objetivo principal de la base de datos es la ayuda en la toma de decisiones. Agregando clientes podría saber que cliente compra más, en que mes, etc, que platillos se vende mas y cuales menos, etc.

La tabla "operacion_venta" solo te va a permitir vender un plato con una sola bebida. Habría que crear una tabla que fuera "detalle_operacion_venta" ya que van a haber ocasiones que tus clientes te pidan varios platos y bebidas diferentes. Como esta actualmente, para sacar el total de una venta con platos diferentes, creo que es imposible.

Entre la tabla "plato" y "precio_empresa" tambien le agregaría una tabla intermedia que relacione a ambas y una fecha correspondiente, de esta manera es posible cambiar los precios de los platos y saber cuando se cambio el precio.

Espero que te sea de ayuda.

Saludos!!


Orales muchas gracias por tu ayuda... ¡MASTER! :metal:
me sacaste de un apuro, te debo una... la cambiare y luego te enseño como quedo... encerio gracias!
 
gracias

Las tablas de abarrotes, carnes y bebidas, comparten la misma informacion, entonces para mi, crearia una tabla unica llamada "Articulos", donde crearia un campo "IDTipo", con valores 1= Abarrotes, 2 = carnes, 3=Bebidas y esos tipos en otra tabla llamada "Tipos", por ejemplo. Asi te ahorras 2 tablas.

La tabla de "Cantidad", no me suena, me parece que te refieres a "TipoDeUnidad" o algo asi.

Las tablas de "venta", "operacion_venta", "plato" hay que retrabajarlas mas como dice "Salandrews". se puede hacer mas detallada y que de mas informacion.

Aunque a mi gusto, nos gustaria que explicaras mas a fondo el contexto del sistema, porque a mi punto de vista, se trata de un sistema de comedor con reloj checador.

gracias por tu ayuda.
en efecto trata de un comedor.
con respecto a lo de carnes y abarrotes es algo un tanto complejo, porque hay abarrotes para lo que es cocina, y abarrotes para la venta...
por ejemplo galletas gamesa, pan bimbo, dulces, chicles, botanas, yogurt lala, alpura, danone y cosas asi, entonces esos son abarrotes, tambien vende productos de cocacola por eso sale la de bebidas, entonces es ahi donde entra mi duda, como puedo poner estos productos en la base...

gracias por tu ayuda! :metal:
 
Bien facil, en la misma tabla, pero crea un campo llamado "IDCentroConsumo", donde ahi especificas donde se consumira el articulo, 1=Cocina, 2=Venta, 3=Etc. Obvio, crea una tabla llamada "CentroConsumos", con los valores antes descritos.
 
Volver
Arriba