Naa! Quasi!
Tab prodotti (idProdottoPK, etichetta, prezzo, disponibilità)
Tab utenti (idUserPK, username, password)
Tab carrelli (idCarrelloPK, idUserFK, idProdottoFK, quantita)
SE lo stesso utente puo' avere piu' carrelli, altrimenti
Tab carrelli (idUserFK, idProdottoFK, quantita)
SE un utente puo' avere un solo carello alla volta.
@Osvaldo, a questo livello (esercizio) prevedere prezzi diversi per lo stesso prodotto e' una complicazione non necessaria. Si puo' fare, ovviamente, MA si incasina non poco la modellazione, perche' bisogna prevedere anche un range di date di validita' del prezzo, che cosa succede se uno aggiunge un prodotto gia' esistente nel carrello ma con un prezzo diverso, ecc.
Insomma, un 'casino'
Pero' perche' vuoi togliere il campo disponibilita'? Puo' essere utile per modellare il fatto che l'enbesimo marinaio ubriacone non puo' ordinare 99 bottiglie di birra, quando un'intera ciurma di ubriaconi se ne sono gia' scolate quasi tutte
Per la storia del 99% dei programmatori ci andrei cauto. Il 99% di quelli che si SPACCIANO per programnatori, ma che non sanno programmare! E non conoscono la teoria relazionale dei dati!