PDA

Ver la Versión Completa : Domain ó Standard data Type?


jwmoreira
11-12-2006, 23:04:46
Por favor si alguien me puede dar su opinión:

Al crear una Tabla cuando definimos los tipos de datos de cada campo Firebird genera un RBD$n..., y nunca es el mismo para todos los campos y en diferentes tablas, ahora si creo un Domain con un tipo de dato fijo funcionara igual ó no? tendre algun problema en su momento? es una ventaja ? cual de las dos formas de definir el tipo de datos me recomiendan?

Saludos,
Jorge.

Gydba
12-12-2006, 01:20:31
Buenas y santas,

Yo en particular siempre opté por crear mis domains. Por qué? Bueno porque para algo están ;)
Hablando en serio: en realidad lo bueno de los domains es la interrelación de los datos y su estructura. Es decir: si creo un domain STR_NAME y a cada tabla donde tenga que almacenar un campo con un dato tipo nombre le asignó éste domain y de esa manera me aseguro que si en un futuro tengo que cambiar la longitud del campo solo modificó en un lugar en vez de ir por todas las tablas. Aparte mismo para la documentación del desarrollo y por claridad, aunque mucha gente opta por no utilizarlos. Pero como pediste MI opinión...

ArdiIIa
01-03-2007, 22:36:35
Revivo un tema un poco antiguo....
Yo veo mas práctico la utilización de Domains, por todos los aspectos... (aseo, comprensión, ulteriores cambios... etc) pero examinando en profundidad el asunto me surgen algunas dudas:

Los cambios posteriores que se puedan realizar en un domain:

Por ejemplo en un tipo Varchar(xx), la modificación ha de resultar un incremento de xx y nunca será menor de xx
No se pueden cambiar los tipos de datos, es decir, un varchar por un integer

Examinando la estructura de tabla RDB$RELATION_FIELDS se puede apreciar perfectamente que: Todos los campos además de estar asociados a sus respectivas tablas, apuntan a su respectiva definición o DOMAIN si es el caso; de tal modo que si ese campo no está asociado a un DOMAIN, está asociado a otro del sistema.


En el primer punto, solamente supone una matización de lo que creo con respecto a los cambios de un DOMAIN y en todo caso, sus existencia sigue suponiendo una gran ventaja frente a cualquier aspecto de su modificación.

Con respecto a la segunda cuestión, (contenido de RDB$RELATION_FIELDS), saco la conclusión (aparente) de que la utilización de DOMAINS, no conlleva un mejor rendimiento en la DB dado que de un modo u otro, siempre existe la definición de un campo en esa tabla y siempre apunta a un DOMAIN generado por nosotros o por el sistema.


A ver si alguien me puede decir que factores podrían influir en el rendimiento de una base de datos, mediante la utilización de DOMAINS, aparte de los obvios, claro está. (espero haberme explicado bien)

Saludos