none
Relaciones de tablas RRS feed

  • Pregunta

  • Hola, estoy haciendo un sistema de facturación.

    Quería saber si la siguiente relaciones de las tablas están bien antes de seguir avanzando.

    Saludos!

    jueves, 26 de abril de 2018 20:11

Respuestas

  • Hola Federico32113:

    idProveeXProv: Ese es un gran debate, si utilizar una clave subrogada o no. Puede no aportarte nada más que complejidad. Aunque a priori no aporta nada, y te permite insertar registros duplicados para un articulo y proveedor. Cosa que tendrás que evaluar si lo quieres o no. Aunque personalmente, yo si la añadiría.

    Dos aportes diferentes sobre la misma duda, con dos visiones diferentes.

    http://www.guillesql.es/Articulos/Claves_Subrogadas_Slowly_Changing_Dimension_SCD_Tipo_2.aspx

    https://inmensia.com/blog/20070223/elegir_clave_primaria_tabla_base_datos_oracle.html

    Por otro lado.

    Si detalle Factura es como tienes, entonces ese atisbo de tabla que aparece con FKidFormaPago. debiera de ser como detalle Factura, es decir que la venta no tiene una clave foranea sobre forma de pago, sino que parte de la clave primaria de forma de pago es idVenta.

    Sigo sin entender el campo ganancia.

    Espero que te ayude.

    Un saludo

    • Marcado como respuesta Federico32113 lunes, 7 de mayo de 2018 21:40
    sábado, 28 de abril de 2018 7:03

Todas las respuestas

  • Se ve bien.....
    jueves, 26 de abril de 2018 20:17
  • Hola Federico32113:

    Entendiendo que estas en la fase de ventas, y en un modelo que como te han dicho, a mi juicio, también se ve bien, pero, se hace un poco raro el nivel de definición de campos del cual dispones.

    DetalleFactura.porcentaje_Ganacia (es un poco raro), que el detalle de la linea, se establezca el porcentaje de ganancia, en la misma. Como sabes, si no dispones de un numero de serie del producto que estas vendiendo, el porcentaje de ganacia, pues lo puedes haber comprado a un precio, o a un precio anterior...mas bajo.

    Si cliente y proveedor, comparten el 100 % de los campos, no sería más facil, la implementación de una tabla persona, que se lleva el 100 % de los campos, y que este relacionado por un id, con proveedores, quedando proveedor.id y proveedor.idpersona, y algo similar para clientes. Otra opción sería, una tabla de entidades, donde uno o varios campos te definen si una entidad es cliente, o proveedor, y los tienes en la misma tabla.

    En articulo, dispones de un Cif proveedor, por aquello de guardar el último proveedor, porque, ¿no piensas comprar tus productos a varios proveedores? Si compras el producto a varios proveedores, tendrás que buscar las compras del articulo para saber los proveedores, por ejemplo.

    Y Caracteristicas, que es un campo texto, donde guardas ahi yo que se que texto, a lo mejor, te es necesario un detalle de caracteristicas de un articulo.

    Un saludo

    jueves, 26 de abril de 2018 20:41
  • Hola Javi Fernández,

    Desde ya gracias por la respuesta, te comento, a esa imagen que adjunte la obtuve navegando por Internet y hice este post para que me confirmen si estaba bien las relaciones para así poder implementarlo en mi BD:

    Siguiendo la imagen logre realizar las relaciones, dejo una imagen para que puedas o puedan decir si están bien las relaciones.

    Me generan dudas sobre todo si tengo que agregar o no una Clave primaria mas en las tablas intermedias.

    PD: es para un sistema de facturación.

    Espero me puedan ayudar, gracias.


    sábado, 28 de abril de 2018 2:20
  • Hola Federico32113:

    idProveeXProv: Ese es un gran debate, si utilizar una clave subrogada o no. Puede no aportarte nada más que complejidad. Aunque a priori no aporta nada, y te permite insertar registros duplicados para un articulo y proveedor. Cosa que tendrás que evaluar si lo quieres o no. Aunque personalmente, yo si la añadiría.

    Dos aportes diferentes sobre la misma duda, con dos visiones diferentes.

    http://www.guillesql.es/Articulos/Claves_Subrogadas_Slowly_Changing_Dimension_SCD_Tipo_2.aspx

    https://inmensia.com/blog/20070223/elegir_clave_primaria_tabla_base_datos_oracle.html

    Por otro lado.

    Si detalle Factura es como tienes, entonces ese atisbo de tabla que aparece con FKidFormaPago. debiera de ser como detalle Factura, es decir que la venta no tiene una clave foranea sobre forma de pago, sino que parte de la clave primaria de forma de pago es idVenta.

    Sigo sin entender el campo ganancia.

    Espero que te ayude.

    Un saludo

    • Marcado como respuesta Federico32113 lunes, 7 de mayo de 2018 21:40
    sábado, 28 de abril de 2018 7:03