CREATE DOMAIN T_ENTIDADES AS
SMALLINT
DEFAULT 0
NOT NULL
CHECK (value in (0,1));
el valor 0 define un Cliente
el valor 1 define un Provedor
¿Como debo modificarla para que en vez de 0 y 1 sea directamente Cliente y Provedor?
Saludos!
Escrito 20 junio 2013 - 03:19
CREATE DOMAIN T_ENTIDADES AS
SMALLINT
DEFAULT 0
NOT NULL
CHECK (value in (0,1));
Escrito 20 junio 2013 - 03:58
CREATE DOMAIN T_ENTIDADES AS
VARCHAR (9)
DEFAULT 'CLIENTE'
NOT NULL
CHECK (value in ('CLIENTE','Cliente','cliente','PROVEDOR','Provedor','provedor','PROVEEDOR','Proveedor','proveedor'));
Escrito 20 junio 2013 - 04:13
¿Asi tal vez?
CREATE DOMAIN T_ENTIDADES AS
VARCHAR (9)
DEFAULT 'CLIENTE'
NOT NULL
CHECK (value in ('CLIENTE','Cliente','cliente','PROVEDOR','Provedor','provedor','PROVEEDOR','Proveedor','proveedor'));
¿Que opinan?
CHECK ( UPPER(value) in ( 'CLIENTE', 'PROVEDOR', 'PROVEEDOR' ));
Escrito 20 junio 2013 - 04:33
Escrito 20 junio 2013 - 07:56
CREATE DOMAIN T_ENTIDADES AS
VARCHAR(9) CHARACTER SET ISO8859_1
DEFAULT 'CLIENTE'
CHECK (VALUE IN ('CLIENTE', 'PROVEEDOR'))
COLLATE ES_ES_CI_AI;
CREATE OR ALTER TRIGGER TU_TABLA_BIU FOR TU_TABLA
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
BEGIN
if (NEW.ENTIDAD STARTING WITH 'PR') then
NEW.ENTIDAD = 'PROVEEDOR';
NEW.ENTIDAD = UPPER(NEW.ENTIDAD);
END
Escrito 20 junio 2013 - 11:56
CREATE DOMAIN T_ENTIDADES AS
VARCHAR(9) CHARACTER SET ISO8859_1
DEFAULT 'CLIENTE'
CHECK (VALUE IN ('C', 'P'))
COLLATE ES_ES_CI_AI;
Escrito 21 junio 2013 - 08:05
Escrito 21 junio 2013 - 08:15
Personalmente, validaciones "tan largas" como tener que poner "cliente" o "proveedor" me parecen un poco exageradas. Con una simple C o P en el domain creo que bastaría y sería suficientemente claro
Escrito 21 junio 2013 - 12:31
Saludos.
Desde mi punto de vista (siempre y cuando la solución sea un dominio) en cuanto a espacio y velocidad de procesamiento la primera opción que tenías es mas eficiente.
Entiendo que quizás para leer directamente los datos en la tabla e incluso en los Select sea más fácil de identificar quien es uno y cual es el otro, a su vez te evitaría el uso de alguna función para convertir de 0 y 1 al valor real.
Otra alternativa, que me gusta más por la flexibilidad que ofrece, es crear un mantenimiento de tipo de entidades y realizar las respectivas relaciones entre las tablas. Con esto obtienes que no tendrás que hacer modificaciones futuras para soportar nuevas entidades (tipos de entidades).
Happy Coding!!
Escrito 21 junio 2013 - 11:54
Escrito 22 junio 2013 - 07:44
A lo que el amigo Rolphi se refiere (corrígeme si me equivoco) es a que tengas una segunda tabla con los valores posibles (y su descripción) del "domain" y que uses una consulta sql con un inner join entre las tablas. Luego necesitarás hacer una pantallita en tu aplicación para la manipulación de esta tabla. Esta pantalla es la de mantenimiento a la que se refiere Rolphi
No se si te lo he explicado mejor o te he liado aun más jajajaja
Saludos
Escrito 22 junio 2013 - 08:22
A lo que el amigo Rolphi se refiere (corrígeme si me equivoco) es a que tengas una segunda tabla con los valores posibles (y su descripción) del "domain" y que uses una consulta sql con un inner join entre las tablas. Luego necesitarás hacer una pantallita en tu aplicación para la manipulación de esta tabla. Esta pantalla es la de mantenimiento a la que se refiere Rolphi
No se si te lo he explicado mejor o te he liado aun más jajajaja
Saludos
Saludos.
Es exactamente a lo que me refiero.