gog
2006-09-25 11:03:03 UTC
Salve , non sò neanche da dove iniziare .. ci provo.
Per problemi di struttura delle tabelle , mi è impossibile applicare
l'integrità referenziale tra la tabella documento di trasporto e la
tabella magazzino. Il db permette sia di gestire documenti di trasporto
sia fatture immeddiate sia (come normale che sia) il carico magazzino)
. Il problema è che essendo 3 tabelle distinte:
tabella documento di trasporto (dove viene inserita l'itestazione del
DDT) :
ID DDT contatore e chiave primaria
CODICE CLIENTE (per tirare fuori i dati dalla tabella clienti che
detiene tutta l'anagrafica)
NUMERO DDT
SEDE DDT (il db gestisce varie sedi identificate da una sigla)
DATA DDT
MODALITA TRASPORTO
CAUSALE TRASPORTO ECC... CAMPI CHE NON CI INTERESSANO PER RISOLVERE IL
PROBLEMA
tabella magazzino (dove vengono memorizzate tutte le movimentazioni)
ID MAGAZZINO (contatore e chiave primaria)
ID DDT (collega i movimenti di questa tabella a quella "documento di
trasporto")
ID FATTURA (collega i movimenti di questa tabella a quella "fattura")
QUANTITA
PREZZO
MAGAZ (per sapere da quale magazzino si ha la movimentazione)
TIPO MOV (per sapere se è un carico o scarico)
DATAMOV (per lo storico)
tabella DDT CARICO (dove metto numero e data del carico e che potrei
comunque eliminare unificandola con documentro di trasporto) :
ID DDT (per legarlo alla tabella magazzino)
CODICE CLIENTE
NUMERO DDT
DATA DDT
MAGAZZ (magazzino dove viene caricato)
tabella fattura
ID FATTURA
CODICE CLIENTE
NUMERO FAT
DATA FATT
ECC..
il problema sta nella tabella magazzino dove vengono memorizzati i
movimenti. L'integrità referenziale non posso applicarla perchè non
sempre il valore che ho su id ddt sta sulla tabella documento di
trasporto esempio
se si inserisce una fattura immediata il campo idddt sta a 0 dato che
verrà dato un valore al campo id fattura .. per cui la tabella
documento di trasporto non avrà un record corrispondente.
Avevo pensato a creare una query che tirasse fuori i valori dalla
tabella documento di trasporto ed i relativi movimenti corrispondenti
all'id di un certo numero ddt per poi usarla su un delete .. ma non mi
fa cancellare come immagginavo.
l'ultima idea sarebbe di creare un modulo che deleti eseguendo 2 delete
sulel 2 tabelle prendendo come variabile l'idddt di un certo numero ddt
es: numero ddt= 2 ha iddt =112 il modulo fa un delete sulla tabella
documento di trasporto per il record identificato dal quell'id e nesso
stesso momento fa un delete per idddt=112 anche nella tabella
magazzino.
Scusate se sono stato lungo ma non so come risolvere.
Grazie
Per problemi di struttura delle tabelle , mi è impossibile applicare
l'integrità referenziale tra la tabella documento di trasporto e la
tabella magazzino. Il db permette sia di gestire documenti di trasporto
sia fatture immeddiate sia (come normale che sia) il carico magazzino)
. Il problema è che essendo 3 tabelle distinte:
tabella documento di trasporto (dove viene inserita l'itestazione del
DDT) :
ID DDT contatore e chiave primaria
CODICE CLIENTE (per tirare fuori i dati dalla tabella clienti che
detiene tutta l'anagrafica)
NUMERO DDT
SEDE DDT (il db gestisce varie sedi identificate da una sigla)
DATA DDT
MODALITA TRASPORTO
CAUSALE TRASPORTO ECC... CAMPI CHE NON CI INTERESSANO PER RISOLVERE IL
PROBLEMA
tabella magazzino (dove vengono memorizzate tutte le movimentazioni)
ID MAGAZZINO (contatore e chiave primaria)
ID DDT (collega i movimenti di questa tabella a quella "documento di
trasporto")
ID FATTURA (collega i movimenti di questa tabella a quella "fattura")
QUANTITA
PREZZO
MAGAZ (per sapere da quale magazzino si ha la movimentazione)
TIPO MOV (per sapere se è un carico o scarico)
DATAMOV (per lo storico)
tabella DDT CARICO (dove metto numero e data del carico e che potrei
comunque eliminare unificandola con documentro di trasporto) :
ID DDT (per legarlo alla tabella magazzino)
CODICE CLIENTE
NUMERO DDT
DATA DDT
MAGAZZ (magazzino dove viene caricato)
tabella fattura
ID FATTURA
CODICE CLIENTE
NUMERO FAT
DATA FATT
ECC..
il problema sta nella tabella magazzino dove vengono memorizzati i
movimenti. L'integrità referenziale non posso applicarla perchè non
sempre il valore che ho su id ddt sta sulla tabella documento di
trasporto esempio
se si inserisce una fattura immediata il campo idddt sta a 0 dato che
verrà dato un valore al campo id fattura .. per cui la tabella
documento di trasporto non avrà un record corrispondente.
Avevo pensato a creare una query che tirasse fuori i valori dalla
tabella documento di trasporto ed i relativi movimenti corrispondenti
all'id di un certo numero ddt per poi usarla su un delete .. ma non mi
fa cancellare come immagginavo.
l'ultima idea sarebbe di creare un modulo che deleti eseguendo 2 delete
sulel 2 tabelle prendendo come variabile l'idddt di un certo numero ddt
es: numero ddt= 2 ha iddt =112 il modulo fa un delete sulla tabella
documento di trasporto per il record identificato dal quell'id e nesso
stesso momento fa un delete per idddt=112 anche nella tabella
magazzino.
Scusate se sono stato lungo ma non so come risolvere.
Grazie