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

[SOLUCIONADO] Consulta modelo relacional

Estas en el tema de Consulta modelo relacional en el foro de Bases de Datos General en Foros del Web. Muy buenas a todos, los saludo. Quiero pedir una mano si es posible, con un par de tablas realmente sencilla pero que me genera dudas. ...
  #1 (permalink)  
Antiguo 20/09/2017, 09:57
Hexulon
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Consulta modelo relacional

Muy buenas a todos, los saludo.

Quiero pedir una mano si es posible, con un par de tablas realmente sencilla pero que me genera dudas.

La bd solamente funcionará como consulta, guardará datos para consultarlos más tarde, no van a haber modificaciones de precios, no soy vendedor.

Las 4 tablas que muestro a continuación, pertenecen a una BD única:

tb_articulos
>art_id
>art_serialnumber
>art_tipo
>art_marca
>art_model
>art_ubicacion
>art_cantidad

------

tb_accesorios
>acc_id
>acc_code
>acc_item
>acc_ubicacion
>acc_cantidad

------

tb_proveedor
>pc_id
>pc_rut
>pc_rsocial
>pv_dir
>pv_tel
>pv_numprov

------

tb_facturas
>fac_id
>fac_code
>fac_prov


tb_articulos -> guardará un número de código para equipos como impresoras y switches, luego tendrá un nombre, una ubicación física y una cantidad al momento que lo ingrese al sistema.

Por otro lado al momento de la compra quiero guardar el número de factura para consultarlo más adelante y hacer algún que otro reporte.

La tabla tb_facturas solo tiene 3 campos, el id, el número de factura y el proveedor que vendió el producto.

La tabla artículos, solo guardará elementos que tenga números de serie, (únicos) la tabla tb_accesorios guardará aquellos elementos como fichas y cables que si se pueden repetir (con el campo código) y pueden tener más de una ubicación.

Como sería conveniente relacionar las tablas entre sí para lograr la mejor performance en un caso como éste?

Donde los movimientos no son tan complicados en sí pero debe tener una consistencia al momento que consulte el articulo sn xxxx por ejemplo, que me traiga todos los campos como el n° de factura, modelo, etc..

Gracias de antemano ante cualquier comentario.
  #2 (permalink)  
Antiguo 20/09/2017, 10:05
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, 10 meses
Puntos: 774
Respuesta: Consulta modelo relacional

Te falta normalizar tus tablas, por ejemplo tipo, marca y modelo de loas articulos podrias sacar 3 catalogos con estos datos.

Ahora de lo que preguntas en las relaciones la unica que veo a la explicacion que das es la de facturas-proveedores
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 20/09/2017, 11:49
Hexulon
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consulta modelo relacional

Cita:
Iniciado por Libras Ver Mensaje
Te falta normalizar tus tablas, por ejemplo tipo, marca y modelo de loas articulos podrias sacar 3 catalogos con estos datos.

Ahora de lo que preguntas en las relaciones la unica que veo a la explicacion que das es la de facturas-proveedores
Libras, cuando dices sacar 3 catálogos con esos datos, a que te refieres me lo podrías explicar un poco más detallado? Mi conocimiento en base de datos es más básica que otra cosa.

Ahora, si la única relación fuera de Factura a Proveedor, cuando se ingrese un artículo con sn: xxxx que va a tener una factura asociada a12345 , como se relacionarían entre sí al momento de hacer una consulta?
  #4 (permalink)  
Antiguo 20/09/2017, 12:00
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, 10 meses
Puntos: 774
Respuesta: Consulta modelo relacional

Tomando en cuenta tu explicacion solo habria una relacion, ya que mencionas que la tabla de facturas solo tendria 3 campos, ahora si quieres que la factura tenga los articulos entonces habria que agregar un campo a esa tabla y una relacion con articulos.

A lo que me refiero con un catalogo es por ejemplo, para las marcas de los articulos, podrias tener una tabla marcas con 2 campos id_marca descripcion, y en la tabla de articulos tendrias id_articulo id_marca ........., esto para tener la base de datos normalizada
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 21/09/2017, 09:16
Hexulon
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consulta modelo relacional

Libras, gracias por tus aportes.

Debido a que no estoy muy estudiado en el tema, para mantenerlo simple, como funcionaría si yo relaciono los 3 id de las tablas?

id:tb_prov, id:tb_accesorios, id:tb_articulos -> a la tabla tb_facturas ?

Supongamos que en mi programa, ingreso un artículo, ahí se especifica el tipo, la marca, el modelo, el número de serie (si es un único artículo, sino sería un código como para fichas RJ45 por decir algo) la ubicación, si está o no en stock, la factura y el proveedor.

Cuando yo llamo a ese artículo por número de serie, lo único que necesito que me muestre, son los datos que mencioné ahí arriba.

Lo que propongo más arriba está mal desde el punto de vista lógico o genera alguna especie de inconsistencia?
  #6 (permalink)  
Antiguo 21/09/2017, 09:35
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, 10 meses
Puntos: 774
Respuesta: Consulta modelo relacional

Pues haces un query con joins y listo, no le veo mas complicacion

Código SQL:
Ver original
  1. SELECT * FROM tabla1 AS t1
  2. LEFT JOIN tabla2 AS t2 ON (t1.id=t2.id)
  3. LEFT JOIN tabla3 AS t3 ON (t2.id=t3.id)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 21/09/2017, 10:25
Hexulon
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consulta modelo relacional

Cita:
Iniciado por Libras Ver Mensaje
Pues haces un query con joins y listo, no le veo mas complicacion

Código SQL:
Ver original
  1. SELECT * FROM tabla1 AS t1
  2. LEFT JOIN tabla2 AS t2 ON (t1.id=t2.id)
  3. LEFT JOIN tabla3 AS t3 ON (t2.id=t3.id)
Eso era lo que quería validar, gracias por la ayuda.

Etiquetas: modelo, relacional, tabla
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 09:56.