[Db] Trigger o altro?

Giovanni R. linfo2003 a libero.it
Sab 2 Giu 2007 13:51:51 CEST


Ciao a tutti.

Ho due tabelle, Prodotti e Offerte, connessi da una relazione 1:N.

Quando vado a visualizzare l'elenco dei prodotti, vorrei visualizzare
anche il numero di offerte associato al singolo prodotto (e anche altre
informazioni simili, ma lasciamo perdere).

Posso agire, credo, in almeno tre modi:

  1) una query su Offerte per ogni prodotto;
  2) una unica query con inner join sulle due tabelle;
  3) l'uso di un nuovo campo, Numero_Offerte, in Prodotti.

Vorrei evitare le prime due soluzioni per questioni di prestazioni.

Siccome vorrei anche evitare di dover andare "manualmente" a modificare
via PHP quel nuovo campo ogni volta che viene fatta o ritirata
un'offerta, avevo pensato che forse i dbms mettono a disposizione
qualche strumento automatico per aggiornare Prodotti.Numero_Offerte in
base alle query INSERT/DELETE effettuate su Offerte.

Avevo pensato ai trigger, che ahimé attualmente ancora non conosco: devo
proprio imparare ad usarli, oppure c'è un'altra soluzione? :-)

In realtà il problema non sono i trigger in sé, ma il linguaggio, spesso
proprietario, utilizzato per scrivere le relative funzioni: siccome non
amo scrivere codice poco portabile, ho sempre rinviato lo studio delle
stored procedure. :(

Ciao, Giovanni

ps. al limite, per ora creerò le mie "pseudo stored procedure" in PHP...


Maggiori informazioni sulla lista Db