Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

FK Tabla ventas

Estas en el tema de FK Tabla ventas en el foro de Bases de Datos General en Foros del Web. Hola a todos, tengo un duda respecto a una tabla ventas, esta tabla tiene varios campos, entre ellos Id Cliente que es fk de la ...
  #1 (permalink)  
Antiguo 09/03/2016, 16:29
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años
Puntos: 0
FK Tabla ventas

Hola a todos, tengo un duda respecto a una tabla ventas, esta tabla tiene varios campos, entre ellos Id Cliente que es fk de la tabla clientes.
En el sistema de ventas que estoy creando, si eliges como tipo de documento Factura no hay problemas porque tienes que seleccionar obligatoriamente un cliente, pero si elige como documento de pago ticket no tiene que elegir cliente, y entonces salta error de FK.
He pensado separar en dos tablas una factura y otra ticket pero me parecería absurdo.
Otra opción es crear un usuario por defecto al crear la tabla y asignarle todos los ticket, pero me parece un parche mas que una solución.

¿Que me aconsejáis? ¿Cual es la solución más común en estos casos?
  #2 (permalink)  
Antiguo 09/03/2016, 16:31
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: FK Tabla ventas

Cita:
He pensado separar en dos tablas una factura y otra ticket pero me parecería absurdo.
No es tan absurdo, si los atributos de ambos documentos son diferentes, correspondería crear una tabla difernte, y en todo caso sería un esquema Padre/hijo, donde la entidad padre sería DocumentosPagados, y las hijas Factura y Ticket, donde la FK del cliente sólo existiría en Factura.
Sino, la única solución es crear un cliente genérico sobre el que se apliquen las emisiones de ticket.

Puntualmente eso dependerá de la regulación legal aplicable en tu país.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 09/03/2016, 17:25
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años
Puntos: 0
Respuesta: FK Tabla ventas

Te doy más detalles:
Tabla venta
Id venta
Id cliente
Id empleado
Fecha
Dto total
Tipo impuesto
Tipo documento

Tabla detalle venta
Id detalle
Id venta
Id product
Cantidad
Precio und
Dto und

Me dices que cree una tabla factura y otra ticket, y que hereden de tipo documento?? Como organizarlas los campos que uso actualmente??

Un saludo y gracias de antemano.
  #4 (permalink)  
Antiguo 09/03/2016, 17:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: FK Tabla ventas

Cita:
Me dices que cree una tabla factura y otra ticket, y que hereden de tipo documento
TE di dos soluciones diferentes.
¿Cual quieres implementar?

La mejor y mas completa, requiere al menos crear dos tablas mas. La menor es crear un cliente genérico para las ventas.

Es tu decisión. Elige una.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 09/03/2016, 17:38
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años
Puntos: 0
Respuesta: FK Tabla ventas

Cita:
Iniciado por gnzsoloyo Ver Mensaje
TE di dos soluciones diferentes.
¿Cual quieres implementar?

La mejor y mas completa, requiere al menos crear dos tablas mas. La menor es crear un cliente genérico para las ventas.

Es tu decisión. Elige una.
La primera 2 tablas mas, perdona si no fui explícito en la respuesta, me ayudas con la estructura??
  #6 (permalink)  
Antiguo 09/03/2016, 17:43
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: FK Tabla ventas

Con el permis

¿FACTURA y TICKET, son documentos que amparan una VENTA y ademas, tienen los mismos atributos?

Ahi la respuesta
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 09/03/2016, 17:46
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años
Puntos: 0
Respuesta: FK Tabla ventas

Cita:
Iniciado por iislas Ver Mensaje
Con el permis

¿FACTURA y TICKET, son documentos que amparan una VENTA y ademas, tienen los mismos atributos?

Ahi la respuesta
Tienen los mismos excepto el cliente
  #8 (permalink)  
Antiguo 09/03/2016, 17:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: FK Tabla ventas

Entonces, COMO TE DIJE AL PRINCIPIO, crea un cliente genérico al que imputar todas las ventas no discriminadas.

¿No se entiende esa idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 09/03/2016, 18:11
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años
Puntos: 0
Respuesta: FK Tabla ventas

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Entonces, COMO TE DIJE AL PRINCIPIO, crea un cliente genérico al que imputar todas las ventas no discriminadas.

¿No se entiende esa idea?
A ver la entiendo perfectamente, lo único que te he pedido ya que voy a utilizar la primera opción es que me ayudes a reasignar atributos. Para ver como redistribuir las tablas.

Un saludo
  #10 (permalink)  
Antiguo 10/03/2016, 11:23
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: FK Tabla ventas

Exacto, VENTAS MOSTRADOR, por ejemplo
__________________
MCTS Isaias Islas
  #11 (permalink)  
Antiguo 11/03/2016, 15:36
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años
Puntos: 0
Respuesta: FK Tabla ventas

Hola a todos, a ver si podemos ordenar la tabla y me ayudais

Tabla venta
id_venta
Fecha
id_empleado
id_cliente
dto_total
tipo_impuesto
id_tipo_documento

Tabla detalle venta
id_detalle
id_venta
id_product
cantidad
precio_und
dto_und

Tabla Factura
id_factura

Tabla Ticket
id_ticket

¿Que campos añadiríais a las 2 nuevas tablas teniendo en cuenta que la única diferencia es que factura tiene cliente y ticket no?
¿Como la relacionaríais con la tabla ventas?
¿Añadiríais algún campo o quitaríais alguno de los que están (totales y subtotales los calculo en tiempo de ejecución)?
  #12 (permalink)  
Antiguo 11/03/2016, 15:43
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: FK Tabla ventas

Tabla venta
id_venta
Fecha
id_empleado
dto_total
tipo_impuesto
id_tipo_documento


Tabla detalle venta
id_detalle
id_venta
id_product
cantidad
precio_und
dto_und


Tabla Factura
id_factura
id_venta
id_cliente


Tabla Ticket
id_ticket
id_venta

Con algo como esto :), los campos calculados si realmente los necesitas guardar para algo quedaria en la base en caso contrario es mejor que sean calculados por la aplicacion(los lenguajes de programacion son mas rapidos para realizar calculos que la base de datos)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #13 (permalink)  
Antiguo 11/03/2016, 16:00
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años
Puntos: 0
Respuesta: FK Tabla ventas

Cita:
Iniciado por Libras Ver Mensaje
Tabla venta
id_venta
fecha
id_empleado
dto_total
tipo_impuesto
id_tipo_documento


Tabla detalle venta
id_detalle
id_venta
id_product
cantidad
precio_und
dto_und

Tabla Factura
id_factura
id_venta
id_cliente


Tabla Ticket
id_ticket
id_venta

Con algo como esto :), los campos calculados si realmente los necesitas guardar para algo quedaria en la base en caso contrario es mejor que sean calculados por la aplicacion(los lenguajes de programacion son mas rapidos para realizar calculos que la base de datos)
El campo id_tipo_documento de la tabla ventas, hace referencia a los dos tipos de documentos (factura y ticket), merecería la pena mantenerlo en la tabla ventas?.

PD: Los campos calculados también prefiero hacerlo en tiempo de ejecución.
  #14 (permalink)  
Antiguo 11/03/2016, 16:08
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: FK Tabla ventas

Creo que con la estructura que te planteo no es necesario usar el campo tipo, harias la relacion usando las 4 tablas, ventas, detalle, factura y ticket, en estas ultimas si la venta existe quiere decir que es de un tipo u otro :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #15 (permalink)  
Antiguo 11/03/2016, 16:15
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años
Puntos: 0
Respuesta: FK Tabla ventas

Cita:
Iniciado por Libras Ver Mensaje
Creo que con la estructura que te planteo no es necesario usar el campo tipo, harias la relacion usando las 4 tablas, ventas, detalle, factura y ticket, en estas ultimas si la venta existe quiere decir que es de un tipo u otro :)
Es decir, que al mostrarlo en una tabla lo calculo en tiempo de ejecución y listo, así evito más peso en la BBDD.
  #16 (permalink)  
Antiguo 11/03/2016, 17:59
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años
Puntos: 0
Respuesta: FK Tabla ventas

Por rizar el rizo,
Es una opción rentable eliminar ventas y detalle ventas, sustituyéndola por factura - detalle factura, y albaran(ticket) - detalle albaran y mantenerlas de forma independiente, simplificaría mucho, pero no se hasta que punto a nivel de rendimiento me ayudaría.

Etiquetas: sistema, tabla, ventas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:15.