Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-02-2007
Producto77 Producto77 is offline
Miembro
 
Registrado: jun 2003
Posts: 35
Poder: 0
Producto77 Va por buen camino
Control de stock por almacenes.

Hola al grupo:
Quiero poner en una aplicación el control de stock de materiales por almacenes. Tengo que dejar al usuario poder crear todos los almacenes que quiera.
Se me ocurre crear una tabla llamada almacen-stock, donde guardo el CodAlmacen, CodArticulo, Existencias. Pero danto vueltas y pensando,,,, cuando tenga 9.000 artícullso y 3 almacenes,,,,,, 27.000 registros.
Alguien puede darme alguna ayudilla, u otra idea mejor.

Gracias por adelantado.
Responder Con Cita
  #2  
Antiguo 19-02-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Producto77
...donde guardo el CodAlmacen, CodArticulo, Existencias. Pero danto vueltas y pensando,,,, cuando tenga 9.000 artícullso y 3 almacenes,,,,,, 27.000 registros.
Creo que esa esla mejor.
La consiguiente relación m..n entre las tablas artículo/almacen y la tabla resultante que es la que tú comentas.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 19-02-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Correcto...

Es la manera correcta de administrar el stock, no te preocupes por la cantidad de registros que un motor de base de datos real lo soporta tranquilamente, además no traerías los 27000 registros por cada acceso a las tablas sino el/los articulos en cuestión y los registros relacionados de la tabla de stock. Eso sí, prestá mucha atención a los índices y claves primarias de cada tabla.

Saludos
Responder Con Cita
  #4  
Antiguo 19-02-2007
Producto77 Producto77 is offline
Miembro
 
Registrado: jun 2003
Posts: 35
Poder: 0
Producto77 Va por buen camino
pos eso.

Pos era por tener una segunda opinión. Gracias de todas formas.
Responder Con Cita
  #5  
Antiguo 19-02-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Te doy otra opción....

Abres la tabla de artículos con un TTable y cuando te 'mueves' de registro, mediante un TQuery abres los detalles de stock, de ésta forma vas a tener unicamente los 3..N (almacenes) en detalles. Pero esto implica un acceso a la tabla cada vez que cambias de registro en el maestro lo cual es un flash igualmente si posee clave primaria o índice por articulo/almacen.

Salu2
Responder Con Cita
  #6  
Antiguo 19-02-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por waly2k1
Abres la tabla de artículos con un TTable y cuando te 'mueves' de registro, mediante un TQuery abres los detalles de stock, de ésta forma vas a tener unicamente los 3..N (almacenes) en detalles. Pero esto implica un acceso a la tabla cada vez que cambias de registro en el maestro lo cual es un flash igualmente si posee clave primaria o índice por articulo/almacen. Salu2
Precisamente, eso es justo lo que no hay que hacer.
No usar tablas, hay que usar querys con los registros que se han pedido.
Responder Con Cita
  #7  
Antiguo 19-02-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Yo Haria dos tablas, una almacen, donde se encuentren todos los almacenes y otra materiales donde se encuentren todos los materiales.
Si quiero ligar los materiales con el almacen a la tabla materiales le pongo un campo NumerodeAlmacen.
Asi tengo la cantidad de almacenes que quiera ligada a una sola tabla Materiales, el control es mucho mas facil.
Por cierto lleva razon Casimiro Notevi, hay que hacer lo posible por usar querys, ya que estos solo envian la informacion que se les pide, por el contrario los tables mandan toda la informacion y alenta el programa.
Saludos
Responder Con Cita
  #8  
Antiguo 19-02-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Es cierto

Es cierto lo que dicen muchachos, pero de cuántos registros estamos hablando 10.000 ? y del lado del cliente ?. No es nada, si me dicen millones obviamente no utilizaría una tabla completa y cargar una grilla. Igualmente les doy la razón.

Saludos
Responder Con Cita
  #9  
Antiguo 19-02-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola Caral. El problema con lo que planteas es que para tener el mismo material en más de un almacén, tendrías que duplicar la entrada:

Código:
numero_material | material                | numero_almacen
...

87              | camisas de manga corta  |     2
...
87              | camisas de manga corta  |     5
...
En cambio, si dejas la tabla de materiales sólo con la información específica de materiales, puedes usar una tercera tabla, almacen-material, que es la que lleva el registro de qué materiales hay en qúe almacenes y qué cantidad

Código:
numero_material | numero_almacen
...

87              | 2
...
87              | 5
...
// Saludos

Última edición por roman fecha: 19-02-2007 a las 23:29:25.
Responder Con Cita
  #10  
Antiguo 19-02-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por waly2k1
Es cierto lo que dicen muchachos, pero de cuántos registros estamos hablando 10.000 ? y del lado del cliente ?.
¿Cómo de que no es mucho? Yo opino que sí lo es. Más de doscientos registros puede ser mucho. Diez mil es demasiado y puede afectar notablemente el rendimiento.

// Saludos
Responder Con Cita
  #11  
Antiguo 19-02-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola Roman
Cierto, pero tal vez como novato veo un poco mas complicado ligar mas de dos tablas, teniendo en cuenta que por ejemplo en mi empresa tengo no mas de 300 materiales y que en un almacen de licores no tendras mas de 1000 productos.
No veo mucha cantidad de registros incluso teniendo 30 almacenes.
Pero si veo por ejemplo que se pueda organizar la tabla por almacen y se podrian ver y buscar los productos o materiales con suma facilidad.
No se es cuestion de conocimiento, a mi me cuesta ligar muchas tablas.
Pero estoy convencido que tu criterio es mejor.
Saludos
Responder Con Cita
  #12  
Antiguo 20-02-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Cita:
Empezado por Caral
Hola Roman
en un almacen de licores no tendras mas de 1000 productos.
Saludos
!! Yo en mi nevera, tengo dos o tres menos Hipp Hipp
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #13  
Antiguo 20-02-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Ves hasta ArdiIIa me da la razon
Si en su nevera no entran.
Saludos
Responder Con Cita
  #14  
Antiguo 20-02-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pero eso es por falta de capacidad de la 'base de datos'. De otra forma, ¿quién se negaría a hacer los enlaces que se requiriesen para agrandar la cava?

// Saludos
Responder Con Cita
  #15  
Antiguo 20-02-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Caral
...dos tablas, una almacen, donde se encuentren todos los almacenes y otra materiales donde se encuentren todos los materiales.
Si quiero ligar los materiales con el almacen a la tabla materiales le pongo un campo NumerodeAlmacen.
El problema de esto, es que aunque a primera vista parece más sencillo, a la larga te da más problemas de mantenimiento, de integridad e incluso puede resultar menos eficiente.

Por ejemplo:
* Si tienes que cambiar la descripción de un artículo (porque se ha modificado), debes cambiarla en varios registros, ya que segun el caso la tendrás repetida en varios de ellos (segun los almacenes).
* También puede pasar que al tenerla repetida, tengas inconguencas en el mismo artículo:
...
87 | Camisas de manga corta | 2
87 | camisa de manga corta | 5
...

* El tenerlo de esta forma, también te limita a la hora de utilizar reglas en CASCADA de la Base de Datos.

Ya se que en este caso, son cosas mínimas porque hablamos de una estructura muy pequeña, pero luego los problemas van creciendo sin darse uno cuenta y ejor empezar "bien".
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 20-02-2007 a las 11:36:32.
Responder Con Cita
  #16  
Antiguo 20-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Hasta ahora no se ha hablado de la Base de Datos, si usamos paradox....ummm, pero usando un SGBBDD, podemos usar vistas que ya ligan (por inner join) las tablas necesarias, haciendo más fácil su uso desde consultas.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #17  
Antiguo 20-02-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Despues de esto:
Cita:
¿quién se negaría a hacer los enlaces que se requiriesen para agrandar la cava?
La verdad tienes razon.
Y mas si son vinos del Penedes especialmente un sangre de Toro.
Saludos
Responder Con Cita
  #18  
Antiguo 20-02-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Lepe
Hasta ahora no se ha hablado de la Base de Datos, si usamos paradox....ummm, pero usando un SGBBDD, podemos usar vistas que ya ligan (por inner join) las tablas necesarias, haciendo más fácil su uso desde consultas.
No estoy muy puesto con el tema, pero aunque no te quito la razón, supongo que las vistas facilitarán la labor de quien haga las consultas suponiendo que es una persona distinta de quien hace la vista. Esto es, las relaciones de cualquier manera se tienen que hacer, sea del lado del servidor o sea del lado del cliente.

De cualquier manera, y luego de una copita, creo que estamos de acuerdo en que lo óptimo es estructurar las tablas con la tabla asociativa material-almacen por las razones expuestas por Neftalí.

// Saludos
Responder Con Cita
  #19  
Antiguo 20-02-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Y va otra

No veo porque tanta complicación,
Tengo dos tablas: Una Articulos y otra STock

Articulos
Id_Articulo
Descripcion
Id_Familia
Precio_Costo
etc.

Stock
Id_Articulo
Id_Almacen
Cantidad

No tengo campos repetitivos, solo el codigo del articulo.
mediante left join uno una tabla con la otra, ojo Left por si ese articulo no está en stock no lo muestra.

Y si quiero hilar mas fino mediante una consulta voy uniendo campos a Articulos de modo que cada Cantidad de la tabla Stock me resultaría un campo de la tabla articulo en la consulta.

Y es to to todo amigos....
Responder Con Cita
  #20  
Antiguo 20-02-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Si waly2k1, pero tu tabla Stock, es en esencia la tabla material-almacen que propone Roman, siempre se necesitara la tabla Almacen adicionalmente.
Me equivoco Roman?
Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Actualizar Stock BlueSteel Firebird e Interbase 6 28-09-2006 00:14:56
Stock Limitante soloriv SQL 5 03-06-2006 20:59:50
stock general ELINK SQL 5 29-03-2005 17:58:00
Actualización entre almacenes Juanfran Varios 0 27-08-2004 19:47:08
Control que crea control craven OOP 5 07-06-2003 02:23:13


La franja horaria es GMT +2. Ahora son las 02:51:58.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi