Al hilo del hilo de "Programo bien?": Programación declarativa

09/02/2007 - 12:19 por Juan Diego Bueno | Informe spam
Hola gente:

A propósito de esas polémicas que surgen constantemente en este
grupo... y tratando de hacer las cosas como se plantean en muchos de
los posts, me encuentro ante una serie de dudas en la creación de una
tabla del proyecto en el que estoy. Me gustaría saber como puedo
resolver declarativamente esta situación ( y pido perdón de antemano
por no haberme documentado más, pero es que no se por donde empezar, y
solo necesito un punto de partida)

Se trata de crear una tabla que va a guardar las vacaciones del
personal. Muchas de las situaciones ya están declaradas en
constraints, como cuidar que los intervalos de fechas sean correctos,
y otras asignaciones a campos, pero hay dos situaciones que no se como
resolver declarativamente. Son las siguientes:

1. La tabla va a tener dos claves principales, el NIF de la persona, y
la fecha de inicio del periodo vacacional. También se guarda la fecha
fin. ¿Cómo puedo hacer que no haya incongruencia entre los diferentes
registros?. Es decir, para que un empleado al insertar un intervalo de
fechas, no se solape con otro ya existente en esa misma tabla

2. En otra tabla se almacenan el número de días de vacaciones a los
que tiene derecho el personal. Por lo tanto, necesito que la suma de
días solicitados en esta tabla, no superen los días que ese personal
tiene asignado.

Para ambas situaciones, evidentemente, puedo utilizar SPs y triggers,
los cuales son eminentemente procedimentales, pero dada la premisa que
se ha planteado de hacer declarativamente lo más posible... ¿cómo
puedo resolver estas dos situaciones de esa forma?

Gracias de antemano

Saludos

Preguntas similare

Leer las respuestas

#16 Juan Diego Bueno
10/02/2007 - 01:20 | Informe spam
Gracias Carlos M. Ya había visto referencias a este SGBD y a D4 en otros
posts... aunque yo preguntaba por los que utilizan SQL, a ver si alguno que
desconociera permitiera eso.

Desde luego, MySQL permite, como decia antes, incluir una cláusula check de
ese tipo y... oh sorpresa, no da error, pero claro, ni da error, ni chequea
ni nada... por lo que comentaba antes

Lo dicho, gracias

Saludos

"Carlos M. Calvelo" escribió en el mensaje
news:
On 10 feb, 00:04, "Juan Diego Bueno" wrote:


Por cierto, si ni Oracle, ni SQL Server, ni MySQL (que tiene la cláusula
Check solo por mantener la compatibilidad con el ANSI, pero pasa de ella),
ni PostgreSQL admiten un check sobre una consulta... ¿existe algún SGBD
que
lo haga? (que esté en el mercado, no me salgas con el que tu estás
haciendo)
Tengo curiosidad malsana...



Hola Juan,

Alphora Dataphor
Disclaimer: solo para curiosos.

Saludos,
Carlos


Estoy utilizando la versión gratuita de SPAMfighter para usuarios privados.
Ha eliminado 5499 correos spam hasta la fecha.
Los abonados no tienen este mensaje en sus correos.
¡Pruebe SPAMfighter gratis ya!
Respuesta Responder a este mensaje
#17 Carlos M. Calvelo
10/02/2007 - 02:03 | Informe spam
On 10 feb, 01:20, "Juan Diego Bueno" wrote:
Gracias Carlos M. Ya había visto referencias a este SGBD y a D4 en otros
posts... aunque yo preguntaba por los que utilizan SQL, a ver si alguno que
desconociera permitiera eso.




Por algo puse el 'disclaimer' :)
Con SQL no sé. Pero SQL mismo tiene sus problemas y eso combinado
con curiosidad ...

Desde luego, MySQL permite, como decia antes, incluir una cláusula check de
ese tipo y... oh sorpresa, no da error, pero claro, ni da error, ni chequea
ni nada... por lo que comentaba antes



Nunca he entendido la popularidad de MySQL pudiendo adquirir
PostgreSQL,
SAPDB of InterBase/Firebird. Hace un par de años le eché un vistazo y
era
totalmente ridículo.

Saludos,
Carlos
Respuesta Responder a este mensaje
#18 Alejandro R
10/02/2007 - 02:53 | Informe spam
Jajajajaja...


"Carlos" wrote in message
news:
Supongo que querias hacerte el graciosillo.
Pero lo único que has hecho, es el ridículo.



Y vos tambien, Susanita De Novoa...

X-DDDDDDDDDDDDDDD

"Susana" escribió en el mensaje
news:

Saludos carlitos.

"Carlos" escribió en el mensaje
news:

El mismo select que meterias al trigger busca la manera de meterlo a un
check constraint si la base de datos te lo permite si no hazte una
funcion de usuario que devuelva un logico y metela al constraint pero
pronto los geniecillos te diran que una funcion no es un sp.

No se porque no le preguntaste directamente a tu maestrico Novoa,
pensaba que eras su empleado igual que Calvelito.

X-DDDD



"Juan Diego Bueno" escribió en el mensaje
news:
Hola gente:

A propósito de esas polémicas que surgen constantemente en este
grupo... y tratando de hacer las cosas como se plantean en muchos de
los posts, me encuentro ante una serie de dudas en la creación de una
tabla del proyecto en el que estoy. Me gustaría saber como puedo
resolver declarativamente esta situación ( y pido perdón de antemano
por no haberme documentado más, pero es que no se por donde empezar, y
solo necesito un punto de partida)

Se trata de crear una tabla que va a guardar las vacaciones del
personal. Muchas de las situaciones ya están declaradas en
constraints, como cuidar que los intervalos de fechas sean correctos,
y otras asignaciones a campos, pero hay dos situaciones que no se como
resolver declarativamente. Son las siguientes:

1. La tabla va a tener dos claves principales, el NIF de la persona, y
la fecha de inicio del periodo vacacional. También se guarda la fecha
fin. ¿Cómo puedo hacer que no haya incongruencia entre los diferentes
registros?. Es decir, para que un empleado al insertar un intervalo de
fechas, no se solape con otro ya existente en esa misma tabla

2. En otra tabla se almacenan el número de días de vacaciones a los
que tiene derecho el personal. Por lo tanto, necesito que la suma de
días solicitados en esta tabla, no superen los días que ese personal
tiene asignado.

Para ambas situaciones, evidentemente, puedo utilizar SPs y triggers,
los cuales son eminentemente procedimentales, pero dada la premisa que
se ha planteado de hacer declarativamente lo más posible... ¿cómo
puedo resolver estas dos situaciones de esa forma?

Gracias de antemano

Saludos










Respuesta Responder a este mensaje
#19 Carlos
10/02/2007 - 03:29 | Informe spam

Bueno, lo de terminar chiflao... creo que tenemos conceptos diferentes al
respecto. Resulta que Alfredo era don Quijote, pero no es él precisamente
el que ve gigantes donde solo hay molinos de viento.




Que quien es Don Quijote? jijijiji, aunque no fui yo quien lo bautice asi,
te pregunto, juanito,

Fui yo que dije la frase teorica: "Meter la consulta en el "Check" es 100%
declarativo." ?

Para cuando tu, temeroso Juanito, le dijiste , sr. Genio, eso en sql server
no se puede, el sr. Genio entonces te responde: "Entonces mal por sql
server". Que brillante no?
O sea, es "el contra el mundo"...los que estan mal son los otros... no es
eso ser una especie de Don Quijote? No es eso ser un teoriquillo como
tambien lo hemos bautizado? aunque Don Quijote al menos no era tan pedante,
ofensivo y creido.

Todo lo de ese señor es decir teorias eolicas sin aplicacion practica.
Cuando coño es que se van a dar cuenta??? (perdon, con esta pregunta ahora
me pareci a Sancho Panza Calvelito,... jijijijijijijiji, solo que yo tengo
mas cerebro e idea propia y no soy un copion limpiasaco).

Si no crees lo que te digo, haz la prueba, siguele preguntando a tu
maestrico y veras...
y mira me intriga que raro que no ha ido a la wiki esta vez... ni tampoco
terminó diciendote: "lo que acabas de decir es tremenda basura... "
parece que de tanto hacer el ridiculo en el otro hilo ya va mejorando el
geniecillo... X-DDDDDDDDD

Take care, Juanito. :)
Respuesta Responder a este mensaje
#20 Alfredo Novoa
12/02/2007 - 12:13 | Informe spam
On Sat, 10 Feb 2007 00:04:51 +0100, "Juan Diego Bueno"
wrote:

Dios me libre de criticar a quien me da de comer



¿No será más bien que les das de comer tu a ellos?

Si pagas por un producto y ves formas de mejorarlo ¿Por que no
decirlo?



Es una frase con un punto de ironía.



Pues no se le veía.

Por supuesto que se puede proponer
mejorar, pero mientras hay que jugar con lo que hay.



Mientras se puede usar la solución 99% declarativa (la de la UDF).
Pero el que no llora no mama. Si los programadores fuesen más
exigentes con las herramientas que usan, estas serían mejores.

Por cierto, si ni Oracle, ni SQL Server, ni MySQL (que tiene la cláusula
Check solo por mantener la compatibilidad con el ANSI, pero pasa de ella),
ni PostgreSQL admiten un check sobre una consulta... ¿existe algún SGBD que
lo haga?



Ahora no recuerdo ninguno además de Dataphor, pero el estandar SQL
completo si las admite.


Saludos
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida