Asignación Automática De ID En Las Tablas De La BD


Objetivo: Asignación Automática De ID En Las Tablas De La BD
Hola amigos.

A partir del programa de ejemplo de Consulta Médica, estoy intentando hacer algo similar pero adaptado a un depósito municipal de vehículos.

La diferencia que existe entre ellos es que una consulta médica se le puede poner un ID único a cada registro, esto es, en el caso de un paciente su DNI o tarjeta sanitaria.

En el caso de un vehículo la situación puede tornarse más compleja, ya que un vehículo que ingresa a un depósito municipal puede tener varias ID's o ninguna:

-Puede ser su matrícula.
-Su número de motor
-Su número de chasis

O puede no tener ningún identificador, ya que puede ser un coche abandonado o quemado, quedando inidentificable.

En esta tesitura, estoy buscando alguna forma de que la tabla pueda asignar un ID automático, y que dicho ID pueda ser relacionado con las tablas asociadas.

¿Veis una posible solución?

Un saludo

Perfil MP  
Objetivo: Re: Asignación Automática De ID En Las Tablas De La BD
LIberto:
Citar:

"A partir del programa de ejemplo de Consulta Médica, estoy intentando hacer algo similar pero adaptado a un depósito municipal de vehículos"

No puedes adaptarlo. Me explico, tienes que estudiar como se organizan los datos de tu base de datos para el depósito municipal de vehículos. A partir de tener claro que tablas intervienen, que campos contienen las tablas, y relaciones que tengan las tablas, podrás empezar a desarrollar el programa.

Citar:
La diferencia que existe entre ellos es que una consulta médica se le puede poner un ID único a cada registro, esto es, en el caso de un paciente su DNI o tarjeta sanitaria.

Siempre es conveniente que los registros tengan un único ID, ya que facilita el borrado y editado de los registros. Lo que puedes hacer es que el programa genere un ID único (aunque el usuario no lo vea en la tabla), pero que internamente si este en los registros. Luego tendrás un campo que verá el usuario que será la matricula, número de de motor, o lo que sea.

Citar:
O puede no tener ningún identificador, ya que puede ser un coche abandonado o quemado, quedando inidentificable.

Debe de tener algo que identifique el coche, aunque sea la fecha y hora (o donde se encontro) de cuando entro en el depósito. Pregunta a un deposito "real", como gestionan este tipo de casos.
Evidentemente si no tienes ninguna forma de identificarlo, no habrá manera de encontrar el coche (o lo que quede de el)
Citar:

tabla pueda asignar un ID automático,

Hay un tipo de campo en las bases de datos que lo puedes decir que se autoenumeren.

Objetivo: Re: Asignación Automática De ID En Las Tablas De La BD
Si no recuerdo mal el ejemplo de Julio de las citas estaba hecho en sqlite. Si estás pensando en hacerlo en un servidor web, te aconsejo mysql o postgresql. Ese planteamiento es anterior a la estructura de las tablas, por cuanto las versiones de sql de cada una de las bases difieren y la conversión de uno a otro (salvo que uses los objetos de gambas) puede ser problemática.

Citar:
ya que un vehículo que ingresa a un depósito municipal puede tener varias ID's o ninguna:

Imposible. no confundas los criterios de búsqueda con las claves primarias. No son la misma cosa.

La clave primaria ,el identificador de una línea como única dentro de una tabla, no tiene por qué tener sentido en sí mismo, salvo el de identificar la línea. Es decir, usa campos numericos definidos como clave primaria y autonumérica. No te arrepentirás.

última edición por shordi el Miercoles, 19 Febrero 2014, 18:06; editado 1 vez
Perfil MP  
Objetivo: Re: Asignación Automática De ID En Las Tablas De La BD
Quizá me he explicado mal.

Cuando digo lo de la "adaptación" realmente estoy hablando de que la experiencia adquirida con el programa de Consulta Médica la estoy aplicando a un nuevo programa, con la temática referida. Pero obviamente estoy empezando todo de nuevo, con tablas diferentes.

Efectivamente la necesidad es que cada vehículo tenga un ID a la que asignarle el número de matrícula, de motor, de chasis, etc.

No sabía que había un tipo de campo para el autonumerado: ¿cuál es?

Perfil MP  
Objetivo: Re: Asignación Automática De ID En Las Tablas De La BD
En SQLite se define como `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,

En MySql como `id`int(10) unsigned NOT NULL AUTO_INCREMENT

Teniendo claro que no tiene ni que tener 10 de longitud, ni que llamarse 'Id', nombre que te puede dar problemas. Yo uso siempre rowid.

Suerte.

última edición por shordi el Miercoles, 19 Febrero 2014, 18:34; editado 1 vez
Perfil MP  
Objetivo: Re: Asignación Automática De ID En Las Tablas De La BD
Para entendernos, lo que necesito es un identificador único generado automáticamente.

Respecto a MySQL o SQlite, voy a intentar primero hacer la aplicación de escritorio; después web.

Perfil MP  
Objetivo: Re: Asignación Automática De ID En Las Tablas De La BD
LIberto:

Citar:
Para entendernos, lo que necesito es un identificador único generado automáticamente.


Es lo que te ha contestado Shordi:
Citar:
En SQLite se define como `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,

En MySql como `id`int(10) unsigned NOT NULL AUTO_INCREMENT


"Respecto a MySQL o SQlite, voy a intentar primero hacer la aplicación de escritorio; después web."
Te estas confundiendo, el motor de la base de datos (MySql o sqlite, o el que sea), no tiene que ver con que sea la aplicacion web o de escritorio o incluso movil.

Saludos

Objetivo: Re: Asignación Automática De ID En Las Tablas De La BD
Citar:
el motor de la base de datos (MySql o sqlite, o el que sea), no tiene que ver con que sea la aplicacion web o de escritorio o incluso movil.


Efectivamente, te aconsejo MySQL si vas a subir la aplicación a un servidor web símplemente porque los servidores web suelen ofrecer ese servicio de base de datos gratis. No conozco ninguno que ofrezca SQLite, por lo que si decides usar SQLite, perfecto, pero te puedes encontrar problemas a la hora de subirla a un servidor.

Por otra parte SQLite es mucho más fácil de instalar, mantener y utilizar en un ordenador local. Sólo almacena un archivo, más o menos como hace Access de Microsoft y, por tanto, las copias de seguridad, etc. se gestionan con muchísima facilidad.

Ten en cuenta que un servidor de base de datos, sea el que sea, MySQL, SQLite, PostgreSQL, etc. etc. es una capa distinta a la aplicación que uses. Puedes hacer una aplicación de escritorio que gestione la base de datos, otra aplicación web que permita consultas y páginas sobre la misma base de datos y otra de teléfono móvil que ofrezca lo mismo simplificado, etc. etc. Todas contra la misma base de datos.

Es por eso que la elección de la base de datos es lo primero que tienes que decidir.
Si te acostumbras a "hablarte" con la base de datos a través de las clases de gambas -lo que te aconsejo-, con hacer el programa una vez te servirá para cualquiera de las mencionadas prácticamente sin cambiar una letra de código. Si usas el lenguaje SQL embebido en gambas -como hace casi todo el mundo- tendrás que reescribir todo el tema de accesos y consultas cada vez que cambies de base de datos.

Lo bueno de aprender es que uno decide qué hábitos coger.

Suerte

Perfil MP  
Objetivo: Re: Asignación Automática De ID En Las Tablas De La BD
Muchas gracias por las respuestas.

A lo que me refería es que primero voy a desarrollar la aplicación de escritorio, luego lo haré con SQLite.

Después haré lo mismo, pero como aplicación web, y lo haré co MySQL.

Me habéis aportado mucho.

Un saludo

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1118s (PHP: -32% SQL: 132%)
Consultas SQL: 24 - Debug off - GZIP Activado