Ciao a tutti, sono neonato di postgresql, ed un pò più attempato
(diciamo che sono "giovane") di Oracle. Sto sviluppando una
applicazione e mi è sorto un dubbio atroce.
Dove lavoravo prima si sviluppava una banca dati che si basava sulla
ridondanza dei dati nelle tabelle per garantire la riferibilità dei
dati. Mi spiego meglio con un esempio: In una tabella abc posso
ottenere la riferibilità dei dati ad un'azienda specifica mettendone il
nome sulla stessa riga in un campo apposito. Su tutte le tabelle del db
posso fare lo stesso, in modo che quando faccio una join tra 2 o +
tabelle basta riferirle alla stessa azienda e si sa che sicuramente si
lavorerà sui dati di tale azienda. In questo modo però ottengo che gran
parte dei dati non sono altro che ripetizione di altri, cosa che si
traduce in spazio occupato e che se si lavora sui milioni di righe può
infastidire. Non mi è mai piaciuta questa linea, infatti ora sto
sviluppando in altro modo una banca dati (postgresql) sulla non
ridondanza di dati, ovvero nelle tabelle ho provveduto a non duplicare
inutilmente informazioni per la sola riferibilità. il punto focale è
che le info riguardanti una specifica cosa (per esempio un utente)
stanno tutte in una specifica tabella, e se io voglio riferirmi a tali
dati posso accedervi tramite un ID (ho pensato ad un campo ID di tipo
SERIAL) valido solo per uno specifico utente.
A questo punto la prima domanda: il mio ragionamento è valido o no?
e poi avrei bisogno di passare ad un trigger degli argomenti (in
qualunque modo!!!) ma leggevo in ml che ciò non è possibile, a meno che
non vengano impostati al momento della creazione del trigger. Me lo
confermate? Ho provato a leggere la doc ma non trovo nulla in merito.
L'unica idea che mi viene in merito è quella di riferire il trigger a
dei dati presenti in una tabella d'appoggio, e di creare una
transazione composta da una fase di inserimento dati in tale tabella e
poi dall'inserimento dei dati veri e propri che mi servono. Non so se
mi sono spiegato come si deve, spero di sì. In tal caso vi sembra
un'idea valida o no?
In caso contrario chiedo scusa, l'argomento è nuovo per me, grazie a
tutti comunque, ciao
-----------------------
Dario Billo
rodario@xxxxxxxxx