Newsgroup: it.comp.software.database
Titolo: come gestire ordini a fornitori? tabella per ord. temp. o altra soluzione?

saluti a tutti.
spero che riusciro' ad essere chiaro: il problema e' relativamente
banale, ma non facile da spiegare.
sto preparando una serie di pagine in php per emettere ordini a
fornitori.
l'idea di massima e' questa: mostro all'utente una serie di articoli
sulla base di scelte fatte in precedenza, lui decide cosa vuole
ordinare selezionando gli articoli e premendo il pulsante "aggiungi
all'ordine" e poi conferma l'intenzione di emettere l'ordine pigiando
il pulsante "emetti ordine".
a seconda del tipo di articolo e di quale fornitore e' destinatario
dell'ordine il sistema si comportera' diversamente --ad alcuni
fornitori dobbiamo emettere un ordine per ogni articolo e ad altri uno
solo per tutti gli articoli--.
io vorrei che il mio utente vedesse la lista di articoli "possibili"
divisa in 2 parti:
- una prima parte che mostra gli articoli che *possono* essere
aggiunti all'ordine che verra' emesso
- una seconda parte che mostra gli articoli che *attualmente* fanno
parte dell'ordine e che, eventualmente, l'utente potra' voler
rimuovere dall'ordine
tenete in considerazione che trattandosi di una pagina web, ad ogni
spostamento di un articolo da una parte all'altra parte devo estrarre
di nuovo tutti i dati dal database, quindi meno giri faccio, meglio
e'.
mi era venuto in mente di fare cosi':
- estraggo la lista degli articoli possibili.
- la inserisco in una tabella "ordini_temporanei"; in questa tabella
ho un campo integer il cui valore discrimina se l'articolo fa parte
della prima lista o della seconda.
- quando emetto l'ordine, cancello tutte le voci da questa tabella
temporanea e inserisco quelle che hanno "da_ord" = '1' nella tabella
"ordini", che e' quella in cui salvo gli ordini emessi.
in questo modo, ad ogni giro --ovvero ad ogni pressione dei pulsanti
"aggiungi" o "rimuovi"--, devo eseguire una sola query.
pero' introduco un'altra tabella nel database.
c'e' un modo piu' diretto o meno macchinoso per farlo?
si puo' fare una:
select [campi] from "wart_ord" where [i codici che estraggo non
esistono in word_forn]?
questo mi risolverebbe in un batter d'occhio tutto il problema: se
potessi selezionare dalla tabella degli articoli solo quelli che non
sono ancora inseriti nell'ordine che sto costruendo, sarei a posto.
saluti e grazie in anticipo.
-- 
Gianni Rondinini
Icem s.r.l. - 
http://www.icem.it
Tel: 
+39 0545 78036
Fax: 
+39 0545 78727

 sono ancora inseriti nell'ordine che sto costruendo, sarei a posto.
come faccio di solito in questi casi suggerisco la lettura di un grosso e
grasso libro di sql

grasso libro di sql
sono sincero: un librone di sql lo sto gia' guardando. si tratta di
sql unleashed di sams publishing, ma, come sovente accade, alcuni
problemi devo risolverli in relativa fretta, prima di aver finito il
librone.
per ora ti ringrazio di cuore.


 per ora ti ringrazio di cuore.
Di nulla e buon proseguimento del lavoro.

ottimo.
mi fa piacere :)
in effetti di roba ce n'e' tanta...
comunque sono riuscito a fare tutto in una query:
SELECT s.cod_art, s.prezzo, t.* FROM (SELECT raddr_tipo, COUNT(*) AS
da_ord, MIN(cons_prev) AS cons_nec FROM produzione WHERE raddr_disp =
'0' GROUP BY raddr_tipo) AS t JOIN wart_ord s ON t.raddr_tipo =
s.desc_int WHERE s.cod_art NOT IN (SELECT cod_art FROM word_forn_art
WHERE ord_num = 'fscb01') ORDER BY cons_nec DESC;
ti ringrazio davvero di cuore perche' senza il tuo aiuto sarei dovuto
impazzire col mio librone molto piu' di cosi'. da ora, invece, posso
far provare all'addetto agli ordini se il sistema gli pare funzionale.
saluti.


 wrote in message
1tmlb016bbpscngrd...@4ax.com...


Ho fatto davvero poco.
Alla prossima