.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Basi di dati ~ comunicazione digitale (http://www.dsy.it/forum/forumdisplay.php?forumid=108)
-- Ultimo Trigger Ospedale (http://www.dsy.it/forum/showthread.php?threadid=32402)


Posted by Svarions on 15-10-2007 14:11:

Ultimo Trigger Ospedale

Ciao a tutti, ho quasi finito la base di dati ma ho visto che a un certo punto nel testo compare:
"quando un medico raggiunge l’età pensionabile, i dati che lo riguardano vengono rimossi dalla base di dati ed ogni eventuale ruolo di responsabilità che egli ricopriva viene assegnato ad un successore (nel caso si conosca già) oppure reso disponibile per la successiva assegnazione ad altri medici; implementare la modifica descritta utilizzando le funzionalità messe a disposizione dal DBMS"

fare la function non è un problema ma come si fa a scrivere il trigger che deve farla eseguire, cioè quando viene controllato che il medico ha raggiunto l'età pensionabile?

Grazie

Simone


Posted by mikypiccolamiky on 24-10-2007 17:32:

ciao ho problema con il login potresti aiutarmi?


Posted by Voodoo on 01-11-2007 14:06:

Re: Ultimo Trigger Ospedale

Originally posted by Svarions
Ciao a tutti, ho quasi finito la base di dati ma ho visto che a un certo punto nel testo compare:
"quando un medico raggiunge l’età pensionabile, i dati che lo riguardano vengono rimossi dalla base di dati ed ogni eventuale ruolo di responsabilità che egli ricopriva viene assegnato ad un successore (nel caso si conosca già) oppure reso disponibile per la successiva assegnazione ad altri medici; implementare la modifica descritta utilizzando le funzionalità messe a disposizione dal DBMS"

fare la function non è un problema ma come si fa a scrivere il trigger che deve farla eseguire, cioè quando viene controllato che il medico ha raggiunto l'età pensionabile?

Grazie

Simone

Ciao Svarione :)
Io ho messo un campo in più nella tabella che gestisce il personale. Questo campo contiene un booleano che definisce semplicemente se un tipo è o no in pensione. Quando si modifica questo valore (ON UPDATE) richiamo la funzione del trigger.
Se hai altri dubbi su trigger fammi un fischio ;)

__________________
GET DROPBOX
# il grado di lentezza è direttamente proporzionale all'intensità della memoria;il grado di velocità è direttamente proporzionale all'intensità dell'oblio (Kundera) #
BLOG: Byte Strike
ChRiS :ciao:


Posted by Svarions on 01-11-2007 14:37:

Non sono d'accordo Vodoo ;), il testo dice che lo dovrebbe fare in automatico quando un tipo supera i 60 anni, per quello che riguarda la funzione del trigger non c'è problema a farla, il problema è quando attivarla...

La mia soluzione è stata la seguente: invece di creare una trigger function ho creato una function e basta che non prende argomenti quindi la richiamo ogni volta che qualcuno entra nella home del sito. Non è esattamente una soluzione precisa ma se si considera che il sito abbia almeno una visita da parte di qualcuno al giorno la soluzione funziona correttamente.

Se qualcuno ha avuto un'idea + brillante della mia si faccia avanti


Posted by Svarions on 01-11-2007 14:40:

inoltre guardando + a fondo la tua soluzione si nota anche che il campo boolean che metti non ha un grande senso inquando non può mai essere true perchè questo vorrebbe dire che il tipo è in pensione ma se questo è in pensione allora deve essere rimosso dalla base di dati... nn so se sono stato chiaro al massimo mandami una mail o chiamami che ne parliamo

Simone


Posted by Voodoo on 01-11-2007 17:49:

Originally posted by Svarions
inoltre guardando + a fondo la tua soluzione si nota anche che il campo boolean che metti non ha un grande senso inquando non può mai essere true perchè questo vorrebbe dire che il tipo è in pensione ma se questo è in pensione allora deve essere rimosso dalla base di dati... nn so se sono stato chiaro al massimo mandami una mail o chiamami che ne parliamo

Simone

Ovvio che nn può mai esser true,infatti quando viene messo a true il trigger si preoccupa di togliere il tipo dal database e quant'altro.
Come consiglio ti dico di fare quello che ti senti e ti viene meglio e di non farti scrupoli sull'interpretazione in quanto:

Ho fatto così anche perchè non sapevo come sviluppare una schedulazione di eventi,magari appoggiandomi alla data di nascita o quant'altro. Oppure non mi ricordavo il vincolo dei sessant'anni.

__________________
GET DROPBOX
# il grado di lentezza è direttamente proporzionale all'intensità della memoria;il grado di velocità è direttamente proporzionale all'intensità dell'oblio (Kundera) #
BLOG: Byte Strike
ChRiS :ciao:


Posted by Voodoo on 01-11-2007 18:07:

Originally posted by Svarions
La mia soluzione è stata la seguente: invece di creare una trigger function ho creato una function e basta che non prende argomenti quindi la richiamo ogni volta che qualcuno entra nella home del sito.

La tua soluzione non è male effettivamente anche se per un po' di anni viene chiamata una funzione che non farà niente :D
In MySQL sembra esistere la schedulazione di eventi con una CREATE EVENT che andrebbe bene per questo caso,settando come lasso di tempo i 60 anni a partire dalla data di nascita del membro del personale e lo si setterebbe all'inserimento del personale nel database. Solo che una soluzione analoga in PG non lh' trovata,almeno con una ricerca veloce.

__________________
GET DROPBOX
# il grado di lentezza è direttamente proporzionale all'intensità della memoria;il grado di velocità è direttamente proporzionale all'intensità dell'oblio (Kundera) #
BLOG: Byte Strike
ChRiS :ciao:


Posted by Svarions on 01-11-2007 22:13:

bhe certo la tua direi che è un'ottima soluzione, cmq bisogna pensare anche che far eseguire una funzione come quella da me proposta avrebbe una latenza inferiore a 0.1 secondo che direi che è una latenza gestibile. poi non so immagino che anche i db propongano qualcosa di meglio solo che io non ne ho la + pallida idea e a livello applicativo reale non ha un grande utilizzo inquanto uno si arrangia con qualcosa lato applicazione

Simone


All times are GMT. The time now is 11:52.
Show all 8 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.