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

Novato

Estas en el tema de Novato en el foro de Bases de Datos General en Foros del Web. Hola, Me llamo Ovidio y soy nuevo aquí. Tengo muy poca idea de bases de datos, y por circunstancias que no vienen al caso, me ...
  #1 (permalink)  
Antiguo 03/02/2011, 01:16
 
Fecha de Ingreso: febrero-2011
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 0
Novato

Hola, Me llamo Ovidio y soy nuevo aquí. Tengo muy poca idea de bases de datos, y por circunstancias que no vienen al caso, me han puesto al cargo de la Secretaria de un Instituto. Tengo necesidad de realizar un inventario (se está haciendo a mano y es una locura) y estoy haciendo mi primera base de datos con access. He creado diversas tablas, con los distintos departamentos del instituto, junto con una general, y las he relacionado y por el momento tengo varias preguntas:

1ª) un campo lo he puesto en autonumérico, y al hacer pruebas, me sale como quiero. Si meto varios artículos para hacer pruebas (por ejemplo 5), al borrar los registros, se borran pero si meto un nuevo artículo me aparece, por defecto, el nº 6. ¿Que puedo hacer para que vuelva a ser el número 1?

2ª) ¿Cómo puedo hacer para que, al meter 20 artículos iguales (por ejemplo 20 mesas), el siguiente registro (el que está en autonumérico) que meta me aparezca con el número 21? (no sé si me explico)

Espero que me solucioneis las dudas que me vayan saliendo.

Muchas gracias por anticipado
  #2 (permalink)  
Antiguo 03/02/2011, 03:56
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Novato

1ª) Herramientas > Utilidades de la base de datos > Compactar y reparar base de datos...

Si la tabla esta vacía el contador del auto numérico se pondrá a cero y por tanto volverá a empezar por el 1. Si en una tabla donde has entrado cinco registros borras el quinto también te servirá, el siguiente será el 5 otra vez, pero si el que has borrado es digamos el tercero no hará nada el tercero no existirá nunca más...


2ª) Si entras 20 mesas en un solo registro, digamos el primero, el siguiente será el 2, si entras 20 mesas en 20 registros el siguiente será el 21.

Ahí parece que tienes un error de concepto, el auto numérico sirve para dar un identificador único a los registros, no para contar ni los registros ni los artículos...

La estructura que yo usaría seria la siguiente

tres tablas

Departamentos
idDepartamento PK autonumerico
Nombre
...


Articulos
idArticulo PK autonumerico
Nombre
...

Inventario
idInventario PK autonumerico
idArticulo FK referenciado a Articulos
idDepartamento FK referenciado a Departamentos
cantidad Integer (número de elementos)

(en este caso las 20 mesas de un mismo departamento van en un registro)


Si el inventario tiene que identificar cada elemento luego la tercera tabla seria

Inventario
idInventario PK autonumerico
idArticulo FK referenciado a Articulos
idDepartamento FK referenciado a Departamentos
codigo
...

(en este caso cada mesa tiene su registro)

donde código seria el código a pegar en cada elemento.

Los ... suspensivos indican que podrías poner mas campos para identificar mejor cada entidad...


La primera estructura seria para un inventario de existencias (lápices, gomas...) y la segunda para elementos no fungibles (muebles, ordenadores,... )
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 03/02/2011, 04:44
 
Fecha de Ingreso: febrero-2011
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Novato

Cita:
Iniciado por quimfv Ver Mensaje
1ª) Herramientas > Utilidades de la base de datos > Compactar y reparar base de datos...

Si la tabla esta vacía el contador del auto numérico se pondrá a cero y por tanto volverá a empezar por el 1. Si en una tabla donde has entrado cinco registros borras el quinto también te servirá, el siguiente será el 5 otra vez, pero si el que has borrado es digamos el tercero no hará nada el tercero no existirá nunca más...


2ª) Si entras 20 mesas en un solo registro, digamos el primero, el siguiente será el 2, si entras 20 mesas en 20 registros el siguiente será el 21.

Ahí parece que tienes un error de concepto, el auto numérico sirve para dar un identificador único a los registros, no para contar ni los registros ni los artículos...

La estructura que yo usaría seria la siguiente

tres tablas

Departamentos
idDepartamento PK autonumerico
Nombre
...


Articulos
idArticulo PK autonumerico
Nombre
...

Inventario
idInventario PK autonumerico
idArticulo FK referenciado a Articulos
idDepartamento FK referenciado a Departamentos
cantidad Integer (número de elementos)

(en este caso las 20 mesas de un mismo departamento van en un registro)


Si el inventario tiene que identificar cada elemento luego la tercera tabla seria

Inventario
idInventario PK autonumerico
idArticulo FK referenciado a Articulos
idDepartamento FK referenciado a Departamentos
codigo
...

(en este caso cada mesa tiene su registro)

donde código seria el código a pegar en cada elemento.

Los ... suspensivos indican que podrías poner mas campos para identificar mejor cada entidad...


La primera estructura seria para un inventario de existencias (lápices, gomas...) y la segunda para elementos no fungibles (muebles, ordenadores,... )
Muchísimas gracias por responder quimfv. Perdona mi ignorancia pero ¿Qué significa PK y FK?.
Yo, en principio, he creado una tabla denominada general con la siguiente estructura:
General
nº de registro (clave principal)
Descripcion de material
Cantidad
Procedencia
Localización
fecha de alta
fecha de baja
motivo de la baja
compuesto por
observaciones.

Posteriormente, he creado una tabla denominada Dependencia con un único campo llamado localizacion.

Dependencia
Localización (relacionado con general) Es campo clave (he metido los sitios del instituto)

Otras tabla con Motivo de la baja

Motivo de la baja

Motivo de la baja (relacioneado con general) es campo clave y he metido los diversos motivos.

Despues he metido 12 tablas ( de los distintos departamentos). Pongo solamente una, por ejemplo CN

CN
identificacion departamento
nº registro
departamento.


La idea mía, es que cada departamento haga su propio inventario, lo entreguen y luego solaparlo (me intersaría que al solaparlos todos, el número de registro se ordene en orden creciente de fecha de alta).

Perdornar el latazo, pero repito que tengo poca idea.

¿Voy bien encaminado? o me aconsejas la estructura que dijeste antes.
Nuevamente aprovecho para daros las gracias
  #4 (permalink)  
Antiguo 03/02/2011, 05:51
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Novato

PK primary key -- clave principal
FK foring key -- clave foranea

La PK tiene la funcion de identificador unico del elemento

La FK obliga a entrar un dato que ya exista en la taba referenciada.

En nuestro caso la FK referenciada a articulo nos asegura que no puedes inventariar un tipo de articulo que previamente no este fichado, en el caso de los departamentos controla que no puedas situar algo en un departamento in exitente.

Las FK ademas permiten controles de integridad, puedes decidir que pasa cuando se elimina por ejemplo la ficha de un articulo en la tabla referenciada, puede impedir la eliminacion si existen registros relacionados en el inventario, o lo contrario solo con eliminar la ficha eliminará los registros relacionados.

Si te fijas en la tercera tabla de la que te he propuesto solo va aguardar identificadores numericos y eso tiene muy poco peso mientras que si guardas las descripciones n veces ocupa mucho espacio, además "mesa redonda" es distinto de "mesa redonda" (dos espacios) o peor tambien es distinto de "mesa redonda " (espacio al final).

Departamentos
1 Matematicas
2 Lengua
3 Lengua estrangera

Articulos
1 Mesa redonda
2 Mesa cuadrada

Inventario
1 1 1 25 <--- seria la mesa redonda numero 25 localizada en Matematicas
2 1 2 32 <--- seria la mesa cuadrada numero 32 localizada en Matematicas
3 2 1 26 <--- seria la mesa redonda numero 26 localizada en Lengua
....

esto ocupa menos espacio y es mucho mas eficiente para la gestion de la bbdd que

Departamentos
1 Matematicas
2 Lengua
3 Lengua estrangera

Articulos
1 Mesa redonda
2 Mesa cuadrada

Inventario
1 Matematicas Mesa redonda 25 <--- idem
2 Matematicas Mesa cuadrada 32 <--- idem
3 Lengua Mesa redonda 26 <--- idem
....
(esta tabla es mucho mas pesada que la anterior por razones obvias...)

Los depatamentos pueden entrar los datos en una misma tabla mientras identifiquen como propio cada registro, esto te permite crear un INDICE UNICO sobre CODIGO con lo que te aseguras que no se indentifique con el mismo codigo dos elementos...

Una secilla consulta

SELECT * FROM inventario WHERE idDepartamento=X

te da el inventario del departamento X

o si la sofisticamos

SELECT * FROM inventario INNER JOIN articulos ON inventario.idArticulo=articulos.idArticulo WHERE inventrio.idDepartamento=X

te da lo mismo pero con todos los datos de cada articulo (nombre descripcion....)

En cuanto a ordenar por fechas

SELECT * FROM inventario INNER JOIN articulos ON inventario.idArticulo=articulos.idArticulo WHERE inventrio.idDepartamento=X
ORDER BY inventario.fecha
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 03/02/2011, 07:06
 
Fecha de Ingreso: febrero-2011
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Novato

¡Me dejas con la boca abierta!
Pero no tengo ni idea de la clave foránea (será cuestión de investigar) ni de cómo se puede relacionar (por cierto si conoces un buen manual indícamelo). Aunque si me cosó trabajo entender lo de la clave principal, imagínate.
A otra cosa, entiendo que en la tabla donde colocas Artículos, estaría con los registros dados, pero en el instituto realmente no es así. Puede haber en común una serie de cosas entre los departamentos (como el mobiliario), pero la mayor parte del material inventariable (libros, DVD, equipos de laboratorio, etc) es propio de cada Departamento (yo no podría hacer la tabla de artículos, sino que sería cada Jefe de Departamento el que rellenaría cada uno de los artículos, cantidades, etc).
Otra pregunta: Cuando tu hablas de sencilla consulta:
¿Cómo llego aquí? Yo las consultas las hacía desde el asistente de consultas.
Una vez más reiterarte mi agradeciemiento por el tiempo que me dedicas.
  #6 (permalink)  
Antiguo 03/02/2011, 07:08
 
Fecha de Ingreso: febrero-2011
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Novato

me refiero a esta consulta:

SELECT * FROM inventario INNER JOIN articulos ON inventario.idArticulo=articulos.idArticulo WHERE inventrio.idDepartamento=X
ORDER BY inventario.fecha
  #7 (permalink)  
Antiguo 03/02/2011, 07:26
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Novato

La puedes hacer con el asistente, si cuando la has hecho y estando en la vista de edicion le das al icono Vista SQL verás una cosa parecida a la que te he puesto yo.

La consulta en realidad es eso... si en esa ventan copias lo que he puesto yo siempre que los nombres de campos y tablas sean los mismos podrás ejecutarla o volver a la vista edición y ver lo mismo des de el asistente...

En cuanto a manuales para access busca los de la versión que estes usando, sobre bases de datos de verdad busca por SQL te dejo el link a la Wiki.

Cita:
El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en éstas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así como también hacer cambios sobre ella.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 03/02/2011 a las 07:32
  #8 (permalink)  
Antiguo 03/02/2011, 07:44
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Novato

Cita:
¡Me dejas con la boca abierta!
Pero no tengo ni idea de la clave foránea (será cuestión de investigar) ni de cómo se puede relacionar (por cierto si conoces un buen manual indícamelo). Aunque si me cosó trabajo entender lo de la clave principal, imagínate.

A otra cosa, entiendo que en la tabla donde colocas Artículos, estaría con los registros dados,

No serian las fichas de los distintos tipos de articulos

pero en el instituto realmente no es así. Puede haber en común una serie de cosas entre los departamentos (como el mobiliario), pero la mayor parte del material inventariable (libros, DVD, equipos de laboratorio, etc) es propio de cada Departamento

Crea un Departamento comun para asignar esos artículos o deja el identificador de departamento a nulo (es el unico valor que la FK permite que no sea un departemento)

(yo no podría hacer la tabla de artículos, sino que sería cada Jefe de Departamento el que rellenaría cada uno de los artículos, cantidades, etc).

La tabla articulos con las fichas debes hacerla tu la tabla inventario puede llenarla cada departmento, así te aseguras que cuando se hable de una "mesa redonda" en un departemento le llamen "mesa redonda", en otro "mesa reuniones" y en un tercero "mesa circular"....

Otra pregunta: Cuando tu hablas de sencilla consulta:
¿Cómo llego aquí? Yo las consultas las hacía desde el asistente de consultas.

En el post anterior

Una vez más reiterarte mi agradeciemiento por el tiempo que me dedicas.

De nada
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #9 (permalink)  
Antiguo 04/02/2011, 08:03
 
Fecha de Ingreso: febrero-2011
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Novato

Nuevamente gracias por responder. Tengo una pregunta ¿voy bien encaminado con el trabajo que estoy haciendo? He buscado información de ese tipo de base de Datos que me comentas y para ser la primera que estoy haciendo, la verdad es creo que se me va de las manos. Tengo poco tiempo para empezar a currarlo y no veo claro lo de los jefes de departamento (el problema no es el mobiliario, pues una mesa redonda es una mesa redonda, y el mobiliario del centro se metería con la tabla de secretaría. El problema es el material propio que tiene cada departamento que en secretaría no se tiene ni idea de qué es. Ese material lo debería de meter los Jefes de Departamentos)
  #10 (permalink)  
Antiguo 05/02/2011, 12:42
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Novato

El problema no es la mesa redonda era un ejemplo el problema es que si cada jefe departamento elige el nombre de los articulos que entra no podrás contabilizar nada... puesto que si a la misma cosa se le llama de distintas formas no se contabilizaran como iguales... Lo ideal es que se parta de un catalogo de articulos si no es posible tendrás mucho trabajo posterior para saber cuanto X tienes puesto que un lo habrá llmado Xs el otro Xy...

No se si me explico... un inventari sirve para saber cuantos de algo se tiene si a ese algo no se le da siempre el mismo nombre nunca sabras cuantos tienes.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #11 (permalink)  
Antiguo 05/02/2011, 13:00
 
Fecha de Ingreso: febrero-2011
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Novato

Hola Quim. Soy yo otra vez. Un inventario en un instituto tiene de todo. No se si me explico. Con la talba de secretaria se controlaria todo el mobiliario y cosas comunes que poseen cedido los Departamentos (mesas, sillas, armarios, archivadores, etc). Pero es que cada Departamento tiene elementos que le son propios a él.
Por ejemplo, el Departamento de física y química tiene en el laboratorio materiales que sólo tiene ese Departamento (por ejemplo, equipo de óptica, maletín de mecánica, de dinámica, etc, mientras que, por ejemplo el Departamento de geografía tiene mapas, proyectores,etc).
Te repito, que la idea que yo tengo es que cada jefe de departamento meta sus materiales, y que despues lo pasen a secretaria, donde se unirían todos (en Secretaría sería imposible saber cúal es el material especçifico de cada Departamento).

Esto me lleva al problema de ¿cómo hacer para despues solaparlos todos y que, el nº de registro se ordene por fechas? no se si me explico.
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 04:17.