Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-12-2005
Luis Castillo Luis Castillo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 102
Poder: 21
Luis Castillo Va por buen camino
Analogia....

HOla colegas...

Estoy iniciando en Interbase y me abundan las dudas de todo tipo....en este caso de diseño:


-Caso Estado Civil:

Tengo un campo estado civil, el cual tiene un dominio fijo (Soltero, Casado, Union Libre, Divorciado, Viudo) y lo declare en dominio como el siguiente:

Código:
CREATE DOMAIN D_EstadoCivil AS VARCHAR(20)
  CHECK (VALUE IN ('SOLTERO','CASADO','UNION LIBRE','DIVORCIADO','VIUDO','SEPARADO'))

Esto fuerza a que el valor entrado sea cualquiera de estos que estan declarados y me imagino que si no es asi se levanta una excepcion. Pero no me ofrece la ventaja de que si estuvieran declarados estos valores una tabla llamada ESTADOCIVIL(IdeEstado, Estado) y por medio de la cual yo puedo con un DBLookupcombobox tener una lista desplegable donde el usuario señala el nombre y se inserta automaticamente el IDEstado (Algo asi como un Campo de busqueda en los TTable, trabajando con paradox....eso es lo que yo he hecho).

Se que esta el DBComboBox, pero entonces tendria que insertar este dominio en el combo y en la declaracion de la base de datos, lo que me traeria problemas de consistencia para futuras modificaciones.

Que opinan....

Como en interbase se haria algo como los campos de busqueda.....

Muchisimas gracias
__________________
LK
Responder Con Cita
  #2  
Antiguo 01-12-2005
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Poder: 19
lpmlpm Va por buen camino
Generalmente es cuestión de gustos, en lo personal no me gusta "cerrar" las cosas cuando existe esa ligera posibilidad de que entre otro valor en el dominio y porcuro manejar catálogos en la mayoria de los casos... recuerda las leyes de murphy: "Si existe la mas minima posibilidad de que pase, no lo dudes, ¡pasara!"...
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
Responder Con Cita
  #3  
Antiguo 02-12-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Bueno comote dicen no es bueno cerrar las cosas pero si lo vas hacer asi.

Entonces no uses varchar por que ya esta cerrado. Entonces para que ocupar mas espacio del necesario simplemente usa smallint donde
0=SOLTERO
1=CASADO
2=UNION LIBRE
3=DIVORCIADO
4=VIUDO','SEPARADO

Bueno asi lo veo pero a la final tu eres queien decide como debe quedar.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.

Última edición por rastafarey fecha: 02-12-2005 a las 16:22:08.
Responder Con Cita
  #4  
Antiguo 03-12-2005
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 22
lbuelvas Va por buen camino
Muy interesante,

La posicion que recomienda rastafarey se utilizo y sigue utilizando cuando se requiere al maximo reducir el tamaño de los registros en las bases de datos o para aplicaciones donde el ancho de banda es una limitante.

En lo personal, si estoy seguro que el conjunto de valores del dominio (estado_civil) no va a cambiar con el tiempo lo dejaria como lo tiene Luis Castillo, si existe la posibilidad de cambio (fijense que en Colombia existe el sexo F, M y resulto uno I de indeterminado cuando el niño/niña es hermafrodita y no ha llegado a una edad donde se determina su sexo "final" lo que obligo a unos cambios en una aplicacion) entonces yo mandaria los datos una tabla Estado_Civil, sin utilizar codigos, y crear una llave foranea, claro que esto trae unos problemitas de selectividad.

Para facilitarme las cosas en Delphi, utilizo un DBComboBox y leo los contenidos de la tabla Estado_Civil y los mando a los Items del DBComboBox, esto se hace una sola vez cuando se abre el formulario.
__________________
Luis Fernando Buelvas T.
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


La franja horaria es GMT +2. Ahora son las 08:46:06.


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