Necesito Un diseño de la bese de datos

Hola. Tengo algunos conocimientos en bd de mysql mediante phpmyadmin, y aunque se registrar datos y verlos a través del web, nunca he RELACIONADO LAS TABLAS.
Quisiera que me ayudaran a diseñar como irían las tablas, que ya del resto me gustaría encargarme yo.
Teniendo en cuenta esto, tengo una base de datos que se llama "asento".
La web requiere que un comercial de ventas pueda registrar en la intranet las ventas del día, con su nivel de usuario. Al ingresar el comercial vería cuantas ventas lleva en el mes. Y después entrar y resgistrar una nueva venta.
El jefe querrá poder VER Y FILTRAR LOS RESULTADOS que los comerciales ingresen, así:
-VER LAS VENTAS POR FECHA
-POR COMERCIAL
-POR PRODUCTO
-Por el jefe directo del comercial
-Por el "login" (para que no se confundan es un código intereno del comercial)
-Por el "ub" (para que no se confundan es otro código interno del comercial)
Básicamente necesito que me ayuden a crear, cuantas tablas se crearían, y que tabla contiene que.
Agradezco su ayuda.

1 Respuesta

Respuesta
1
Necesitas las siguientes relaciones:
Comercial (1) -> (n) Ventas (n) -> (1) Clientes.
Para las relaciones 1->n basta con que la tabla de la derecha tenga el atributo de la tabla izquierda como foreign key.
En este caso, te comento:
Comercial: idComercial y más datos.
Ventas: idVentas, idComercial como foreign key, idCliente como foreign key y más datos.
Clientes: idCliente.
Jaime, estas respuestas dan luz de esperanza. Sin embargo, no me queda claro que significan los símbolos -> Voy a probar, muchas gracias.
Estuve analizando otras cosas, y me dí cuenta que uno de los factores más importantes de todo este esquema que necesito hacer, es que cuando un usuario ingrese su producto, en los resultados, pueda mostrarse automáticamente quien la hizo, por eso te detallo los campos que tengo para el registro de ventas, o sea, los que necesito que el comercial registre:
-Producto (con lista desplegable para que escojan, esta ya relacionada con la tabla tipoventa)
-DNI o (documento de identificación)
-Móvil
-Web
-Baco
Como el usuario esta logueado, se supone que no debería introducir un campo que deba decir usuario, ya que está logueado y una relación me permitiría identificar que cuando se encuentre allí y registre una venta, sea de él.
Obviamente tengo un sistema de login para que el usuario se logue, y cuando esto sucede, le aparece el formulario de registro de ventas que te detallé anteriormente.
Las tablas que tengo:
"comerciales". En esa tabla tengo estos campos:
Id - nivel - ub - usuario - clave - clave2 - nombres - jefe - jornada
Los campos que están subrayados debería poder filtrarlos en la página de resultados
(Nota: El campo clave2 esta vacío y creo que lo usare para cambios de clave, leí por ahí que es necesario para que los usuarios puedan cambiarla después, pero no estoy seguro, ya que es otro tema a parte ojalá puedas decirme si es necesario)
Te agradezco.
Ok,
Para ir aprendiendo conceptos que te pueden venir bien (aunque ya veo que posees algunos), tienes que entender que lo que explicas es el negocio, las características (qué debe hacer el programa) y por otra parte, el modelo de datos, ¿cómo represento la información necesaria en bases de datos?
Una vez entendido el primero, que lo explicas bien, podemos afrontar el segundo. Vamos a por ello:
Tabla usuario: dni, móvil, web, banco, password (para permitir el logueo).
Tabla comercial: id (o bien dni), nivel, ub (no se qué es), usuario, clave, nombre, jefe.
Tabla venta: idComercial clave foránea a comercial, idUsuario clave foránea a usuario, idProducto clave foránea a tipoVenta.
Varias notas:
Lo que comentas del campo clave2 de comercial no es necesario, prueba a intentarlo por ti mismo y lo verás.
Sigues necesitando tres tablas + la tabla tipoVenta. La relación de las tablas son las siguientes:
Usuario (n) -> (1) Venta (1) -> (n) Comercial
                                      (n) -> (1) TipoVentas
En una base de datos, siempre puedes filtrar por cualquier campo de una tabla con una select. Es decir, por usuario puedes filtrar por el campo que te interese.
Peléate un poco, que te vendrá bien, y sigue preguntando dudas. Mi objetivo es ganarme tu confianza ;)
Jajaja, no te preocupes que ya te la has ganado. Espero yo ganarme la tuya haciendo las preguntas correctas. Sólo de esa manera obtendré las respuestas correctas.
Voy a poner en funcionamiento este sistema como lo tengo y sobre la marcha esta semana voy haciendo las modificaciones que necesito, espero poder hacerlo bien. Muchas gracias nuevamente.
Ok tío, dale gas, en mi primera BD el profe, que por cierto era muy feo, me puso un 3.5 JAJAJAJA
Vete preguntando movidas y a por ello!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas