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

Bases de Datos para sistemas de inventario

Estas en el tema de Bases de Datos para sistemas de inventario en el foro de Bases de Datos General en Foros del Web. Hola foro... me llamo Fiorella y la razon por la que escribo es debido a que me urgue que alguien me heche una mano... si ...
  #1 (permalink)  
Antiguo 22/02/2009, 12:29
 
Fecha de Ingreso: febrero-2009
Mensajes: 101
Antigüedad: 15 años, 2 meses
Puntos: 0
Bases de Datos para sistemas de inventario

Hola foro... me llamo Fiorella y la razon por la que escribo es debido a que me urgue que alguien me heche una mano... si pueden...

Resulta que estoy haciendo mis pasantias en la Secretaria de la Cultura y me mandaron a desarrollar una aplicacion que me maneje el inventario de los articulos de oficina que ellos manejan... y me entregaron un organigrama donde estan detallado la organizacion ... entonces primeramente esta el dpto de la Secretaria de la cultura y de ella descienden 4 direcciones generales y a su vez de esas cuatro direcciones generales estan dos direcciones a parte... y de las 4 direcciones generales, ademas tambien dependen jefaturas y de las jefaturas dependen coordinaciones ... El detalle esta que ellos me piden que les genere dos tipos de inventarios... un inventario por Departamento y uno por Direccion General... pero resulta en el inventario por direccion general debo de mostrar todos los articulos de oficina que tiene esa direccion mas los articulos que tienen los departamentos que dependen de esa direccion... y no se como enlazarlo allí... y pues ese es mi dilema... Quisiera que porfa alguien me ayudara... Acontinuaciones les explico como llevo el diseño de la base de datos, aunque se que me falta algo que me permita enlazar los que les planeo.

Las tablas que tengo actualmente son las siguiente:
Tabla Departamento: id_dpto,nombre_dpto,direccion_dpto,descripcion_dpt o.
Tabla Articulo:id_art,descripcion_art,serial_art,medida_ art.

ademas tengo una Tabla llamada Activo por lo siguiente: cada articulo debe llevar un codigo de activo fijo que es un codigo unico que se le asigna a un articulo independientemente de que el articulo sea de la misma categoria, es decir supongamos que tenemos dos sillas iguales pero a una silla se le asigna un codigo de activo fijo y a la otra silla se le asigna otro codigo, esto se hace para llevar un control de donde se encuentran los articulos de oficinas, o sea en que departamento estan y esas cosas... Esta Tabla tiene los siguientes atributos:
Tabla Activo: id_activo, estatus_art.

las Relaciones que tengo van de la siguiente manera:
1.- En un departamento hay N activos
Un activo esta en un solo departamento
Osea la relacion es de 1:N y la tabla Activo hereda el id_dpto.

2.- Un articulo se le asigna N activos
Un activo es asignado a un articulo
Para que quede mas claro: supongamos que las sillas son de codigo: SIL-01
entonces yo puedo decir:
id_art. id_activo
SIL-01 1
SIL-01 2
SIL-01 3
En este caso la tabla activo tambien hereda el id_art

entonces el modelo relacion quedaria de la siguiente manera:
Tabla Articulo:id_art,descripcion_art,serial_art,medida_ art.
Tabla Departamento:id_dpto,nombre_dpto,direccion_dpto,de scripcion_dpto.
Tabla Activo: id_activo, id_art,id_dptp (como claves foraneas) , estatus_art

Espero que comprendan el diseño de la bd, y que porfa alguien me de una idea con el problemita que tengo.

Gracias ....
  #2 (permalink)  
Antiguo 22/02/2009, 16:39
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Bases de Datos para sistemas de inventario

creo que te falta especificar la tabla dirección, donde esta debe estar enlazada con departamento.

Un departamento solo debe pertenecer a una dirección... de este modo, ya puedes hacer uso de una consulta anidada entre las tablas activos, departamento y dirección que te muestre los artículos pertenecientes a un id_direccion.. caso reporte 2.

Para el reporte 1 puedes hacer una consulta entre activos y departamento sin mayores problemas.

Espero haberte entendido y que te haya ayudado.
  #3 (permalink)  
Antiguo 22/02/2009, 19:15
 
Fecha de Ingreso: febrero-2009
Mensajes: 101
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Bases de Datos para sistemas de inventario

Hola... oye te habia escrito antes pero no se porque pero al parecer no cargo bien...

entre las cosas que te comente en mi otro mensaje te agradecia de por tu pronta respuesta... full gracias por eso... y bueno te explicaba lo que habia entendido referente a tu sugerencia y te decia que checaras el organigrama del que habla principalmente a ver que tenias que decir...

Tú idea es basicamente crear una tabla de direccion y que los departamentos heredaran ese id_direccion y asi relacionarlo por direccion... pero eso significa que al momento de cargar un nuevo departamento hay que especificar a que direccion pertenece...

Y otra cosa que podras ver en el organigrama es que muchos departamentos no solo depende de esa direccion general sino que tambien dependen de jefaturas, y hasta en algun caso de coordinaciones

Umm... no puedo enviarte la imagen del organigrama... porque soy nueva... Si podrias enviarme algun correo donde pueda enviarte la imagen te lo sabria agradecer... Y Disculpa de antemano si esta prohibido pedir info sobre correos o publicarlos... Es que soy nueva y no lei las normas!!!

Muchisimas gracias de antemano...
  #4 (permalink)  
Antiguo 22/02/2009, 19:34
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Bases de Datos para sistemas de inventario

Hola Fiorella...

Yo te recomiendo establezcas muy bien el nivel de jerarquía de cada tabla y su relación y necesidad entre ellas. Por ejemplo, tu dices que el departamento de secretaria tiene 4 direcciones generales, por ende, estas cuatro direcciones deben estar asociadas al departamento. Tu dices que también dependen de jefaturas y coordinaciones, entonces tambien es necesario relacionar las direcciones generales con las jefaturas.

Recuerda siempre tener en cuenta las relaciones 1-1 1-n n-m.
Por ejemplo, entre departamento y direcciones... si un departamento tiene n direcciones, pero una dirección solo puede pertenecer a un departamento, es relación 1-n. por ende, el id_dpto debe ir en la tabla direcciones. si puede pertenecer a múltiples departamentos, se genera una nueva tabla con sus llaves primarias en la tabla.

Trata de hacerlo y cualquier duda, vuelves a preguntar.
  #5 (permalink)  
Antiguo 22/02/2009, 20:17
 
Fecha de Ingreso: febrero-2009
Mensajes: 101
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Bases de Datos para sistemas de inventario

Creo que no nos estamos entendiendo... o me explique mal....
Pero la verdad gracias por regalarme tantito de tu tiempo... Muchas gracias en verdad... implementare la sugerencia que me distes!!!

gracias
  #6 (permalink)  
Antiguo 25/02/2009, 07:55
 
Fecha de Ingreso: febrero-2009
Mensajes: 101
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Bases de Datos para sistemas de inventario

Hola amigo...
Gracias por la sugerencia de crear la tabla direccion... hable con mi jefa y me dije que lo trabaje asi... pero quisiera que me aclararas algo... tú mencionar que creando esta tabla y relacionandola con departamento podria crear una consulta anidada... podrias explicarme eso... please...

Gracias
  #7 (permalink)  
Antiguo 25/02/2009, 08:34
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Bases de Datos para sistemas de inventario

Hola fiorella

teniendo en cuenta que el departamento es la tabla de mayor jerarquía y que una dirección solo pertenece a un departamento, la tabla dirección debe incluir el id_departamento al que pertenece cada dirección.

basados en esto:
Cita:
las Relaciones que tengo van de la siguiente manera:
1.- En un departamento hay N activos
Un activo esta en un solo departamento
Osea la relacion es de 1:N y la tabla Activo hereda el id_dpto.

2.- Un articulo se le asigna N activos
Un activo es asignado a un articulo
Para que quede mas claro: supongamos que las sillas son de codigo: SIL-01
entonces yo puedo decir:
id_art. id_activo
SIL-01 1
SIL-01 2
SIL-01 3
En este caso la tabla activo tambien hereda el id_art
cada dirección tambien debe tener el codigo del departamento al que pertenece.

ahora si para generar el reporte por dirección y por departamento podría hacerse de la siguiente forma:

Por dirección: (consulta anidada)
select *from activos inner join direccion on activos.id_dpto = direccion.id_dpto where id_direccion = codigo_direccion;

Por departamento:
select *from activos where id_dpto = codigo_departamento;
  #8 (permalink)  
Antiguo 25/02/2009, 12:17
(Desactivado)
 
Fecha de Ingreso: febrero-2009
Mensajes: 2
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Bases de Datos para sistemas de inventario

Muy complicado para mi ufffff jajaja, yo tambien necesito una pequeña ayuda con 1 base de datos veremos a ver. Saludos
  #9 (permalink)  
Antiguo 25/02/2009, 16:22
 
Fecha de Ingreso: junio-2008
Ubicación: Tarija
Mensajes: 79
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Bases de Datos para sistemas de inventario

Me parece que la solución es la siguiente: Son dos tablas.

Departamento(id,nombre,descripción,tipo,deptosuper ior)

id: Llave primaria, código de la secretaria, dirección, jefatura, coordinadora, etc.
nombre: Nombre de la secretaria, dirección, jefatura, coordinadora, etc.
descripción: Descripción de las funciones de la secretaria, dirección, jefatura, coordinadora, etc. (Este campo podria estar o no)
tipo: Si es una secretaria, dirección, jefatura, coordinadora, etc. (Este campo podria estar o no)
deptosuperior: Código del departamento del que depende. La Secretaria tendria en blanco esta campo debido a es la maxima autoridad.

Activo(id,descripción,serial,medida,departamento)

id: Llave primaria, código del activo. (SIL-01, SIL-02, etc.)
descripción: descripción del activo.
serial: Serial del activo.
medida: Medida del activo.
departamento: Departamento al que pertenece el activo.

y listo.
  #10 (permalink)  
Antiguo 25/02/2009, 21:58
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Bases de Datos para sistemas de inventario

Buen día brozov

Es una mejor solución si no se maneja ningún tipo de información de jefaturas, ni personal, ni coordinaciones.
Imaginate que el sistema requiera la información del personal del departamento..(solo se tendría el nombre de la secretaria.)
o que se requieran las direcciones pertenecientes a una jefatura. (solo tendriamos la información por departamento)

Como te digo, depende de los alcances del sistema tu solución es la mejor. Si no se requiere toda esta información, para que enredarnos con tantas tabla? En ese caso si sería una solución muy factible.

Un saludo.
  #11 (permalink)  
Antiguo 26/02/2009, 08:40
 
Fecha de Ingreso: febrero-2009
Mensajes: 101
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Bases de Datos para sistemas de inventario

Hola Huesos52...

Te cuento como defini finalmente la bd del sistema de inventario:

DIRECCION: id_direccion,nom_direccion.
DEPARTAMENTO: id_dpto,nom_dpto,dir_dpto,descr_dpto,id_direccion.
ARTICULO: id_art,descr_art,medida_articulo,serial_arti.
ACTIVO:id_activo,id_dpto,id_articulo,estatus_art.

porque despues de hablar con mi jefa aclare una duda que tenia... y era la siguiente ... ella kiere dos tipos de inventarios, que son los siguientes:

1.- Por direccion:que muestre todo lo que hay en una direccion y por ende, los departamentos que dependan de ella.

2.- Por departamento especifico:que muestre lo que hay en un departamento en especial, pero con la particularidad de que ese departamento tambien puede ser una direccion... es decir que solo muestre los articulos que haya en una direccion... si me entiendes?

Perp resulta lo siguiente, entre la tabla direccion y activo no hay una relacion directa... entocnes kisiera preguntarte como hago al momento de que le kiera cargar los articulos a una direccion? porque por ejemplo la direccion de Administracion es una oficina y alli hay mesas. escritorios.. etc ... pero en mi tabla activos solo cargo el activo. id_dpto y el id_art ... por ningun lado tengo id_direccion... y esto lo hago basada en lo que me dijistes...

Cita:
Iniciado por huesos52 Ver Mensaje
creo que te falta especificar la tabla dirección, donde esta debe estar enlazada con departamento.

Un departamento solo debe pertenecer a una dirección... de este modo, ya puedes hacer uso de una consulta anidada entre las tablas activos, departamento y dirección que te muestre los artículos pertenecientes a un id_direccion.. caso reporte 2.

Para el reporte 1 puedes hacer una consulta entre activos y departamento sin mayores problemas.

Espero haberte entendido y que te haya ayudado.
espero que me hayas entendido... y que me ayudes!!! si puedes...
  #12 (permalink)  
Antiguo 26/02/2009, 09:51
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Bases de Datos para sistemas de inventario

Hola fiorella...
La verdad no te entendí muy bien, las relaciones que manejas. Es mas, pensaba que departamento tenía direcciones y no al revés.
Cita:
entonces primeramente esta el dpto de la Secretaria de la cultura y de ella descienden 4 direcciones generales y a su vez de esas cuatro direcciones generales estan dos direcciones a parte...
Sin embargo, te voy a responder a tu principal duda que es como mostrar los datos de varias tablas sin estar relacionadas directamente.

según tu esquema
Cita:
DIRECCION: id_direccion,nom_direccion.
DEPARTAMENTO: id_dpto,nom_dpto,dir_dpto,descr_dpto,id_direccion.
ARTICULO: id_art,descr_art,medida_articulo,serial_arti.
ACTIVO:id_activo,id_dpto,id_articulo,estatus_art.
como ves, entre activo y dirección no hay una relación directa, pero ambas tienen relación con departamento.

Si por ejemplo quieres mostrar nom_direccion y estatus_art puedes hacerlo de la siguiente forma:

select direccion.nom_direccion, activo.estatus_art from direccion inner join activos on activos.id_dpto = direccion.id_dpto;

Que hace inner join? Une las tablas teniendo en cuenta la integridad referencial que existe entre ellas.
tanto dirección como activos comparten un campo id_dpto y se valen de eso para mostrar sus propios campos.

Espero haberte ayudado.
  #13 (permalink)  
Antiguo 26/02/2009, 14:51
 
Fecha de Ingreso: febrero-2009
Mensajes: 101
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Bases de Datos para sistemas de inventario

NO HUESOS52...
LA COSA ES AL REVES... LAS DEPARTAMENTOS DEPENDEN DE LAS DIRECCIONES!!! LO QUE OCURRE ES QUE LA SECRETARIA DE LA CULTURA ES UNA ENTIDAD DEL GOBIERNO... POR ESO DIJE QUE ERA UN DEPARTAMENTO... SORRY.... PERO VAMOS A PARTIR CON LA IDEA DE QUE LA SECRETARIA ES LA OFICINA PRINCIPAL...Y BUENO CON RESPECTO A LA CONSULTA NO ESTOY BUSCANDO CONSULTAR POR DIRECCION ... ESO YA LO HICE Y ME SALE PERFECTO... LA DUDA ES QUE LAS DIRECCIONES TAMBIEN SON OFICINAS Y TIENEN SUS ARTICULOS (MESAS, SILLAS, ESCRITORIOS, ETC) ENTONCES COMO LA TABLA DIRECCION Y ACTIVO NO TIENEN RELACION DIRECTA ... Y CUANDO YO CARGO UN NUEVO ACTIVO PIDO SUS ID_ACTIVO,ID_DPTO E ID_ART NO ME SALE POR NINGUN LADO EL ID_DIRECCIONES... Y BUENO DADO A ESA NECESIDAD CAMBIEN OTRA VEZ EL DISEÑO DE LA BD Y LA DEJE DE LA SIGUIENTE MANERA:

DECIDI NO REALIZAR LA TABLA DE DIRECCION Y ENTONCES HARE UNA RECURSIVIDAD CON LAS TABLA DEPARTAMENTO DONDE DIGO QUE

DE (1) DEPARTAMENTO DEPENDEN (N) DEPARTAMENTO
(1) DEPARTAMENTO DEPENDE DE (1) DEPARTAMENTO

Y ASI LOS DEPARTAMENTOS QUE SON DIRECCIONES NO TENDRAS ESA "DPTO_ID_DEPARTAMENTO"....

QUE ME DICES? TE PARECE BUENA IDEA?

GRACIAS
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 06:07.