Salve a tutti,
inizio con questo primo post chiedendovi aiuto, spero di poter ricambiare il favore nel tempo.
Studio ingegneria informatica e mi sto occupando di un progetto per la realizzazione di un database SQL.
Ho cercato di trovare una soluzione sia in SQL da terminale che con l'ausilio di Navicat per cercare di automatizzare
il tutto senza alcuna soluzione. Mi spiego meglio.
Il database che ho pensato e creato si occupa della gestione di un sito di E-Commerce di Videogames,
ho 3 problemi che non riesco a risolvere del tutto;
1. Il primo riguarda il controllo dei prodotti al momento della selezione, ovvero quando il cliente "inserisce" i prodotti nel "carrello" ho trovato una pseudo soluzione indicando la ForeignKey dell'ID_Prodotto presa dal magazzino piuttosto che dalla lista dei prodotti e a livello teorico ho risolto, se non fosse che il secondo punto che sto per descrivere mi crea un problema concatenato;
2. non so come far diminuire la quantità di prodotto al momento della spedizione del prodotto come realmente dovrebbe essere, perchè in pratica nel momento in cui parte una spedizione mi ritrovo ad avere l'ID_Prodotto_Venduto e la Quantità_Prodotto_Venduto che dovrebbe essere sottratta dalla Quantità dei prodotti in magazzino;
3. il terzo problema riguarda le "spese di spedizione" ho una tabella che riguarda l'Acquisto, questa tabella è strutturata in questo modo:

CREATE TABLE Acquisto
(
ID_Ordine int (20) NOT NULL,
FOREIGN KEY (ID_Ordine) REFERENCES Ordine(ID_Ordine),
ID_Prodotto int (20) NOT NULL,
FOREIGN KEY (ID_Prodotto) REFERENCES Ubicazione(ID_Prodotto),
Acquisto_Fisico int (1) NOT NULL,
CHECK (Acquisto_Fisico >=0 AND Acquisto_Fisico <=1),
Quantità_Prodotto_Fisico INT (100) NOT NULL,
Acquisto_Virtuale int (1) NOT NULL,
CHECK (Acquisto_Virtuale >=0 AND Acquisto_Virtuale <=1),
Quantità_Prodotto_Virtuale INT (100) NOT NULL,
Spese_di_Spedizione NUMERIC(8,2) NOT NULL
)

(da "regole aziendali" nelle colonne Acquisto_Fisico e Acquisto_Virtuale il valore 0 indica NO e il valore 1 indica SI)

ovviamente dovrebbe fare molto di più di quello che fa, perchè mi servirebbero le seguenti funzioni:

1. Se l'Acquisto_Fisico/Acquisto_Virtuale presentano il valore 0 (quindi non viene effettuato l'acquisto fisico/virtuale)
la Quantità dell'acquisto corrispondente va in automatico a 0;
2. Se il cliente effettua un Acquisto_Fisico e quindi la Quantità_Prodotto_Fisico è >0 vengono automaticamente inserite le spese di spedizione di 10€ (e nasce anche il problema che andrebbero inserite nell'ordine, se no per ogni prodotto fisico il cliente paga 10€ di spese di spedizione)




Spero possiate darmi qualche aiuto, vi allego lo schema (http://i66.tinypic.com/28wjina.png) così magari potete anche darmi un'occhiata a quello e correggere eventuali errori.
Buon weekend
_DaRKoS