Ciao,
una domanda sciocchissima....
ho due semplici tabelle:
utenti(id,login,password)
prodotti(id,nome,descrizione,immagine,prezzo)
ha senso prevedere che la tabella ordini sia fatta così?
ordini(id,utenti[id],prodotti[id],quantita,data)
?
Ciao,
una domanda sciocchissima....
ho due semplici tabelle:
utenti(id,login,password)
prodotti(id,nome,descrizione,immagine,prezzo)
ha senso prevedere che la tabella ordini sia fatta così?
ordini(id,utenti[id],prodotti[id],quantita,data)
?
dipenda dalla logica che intendi seguire .
Solitamente io consiglio di utilizzare una bella tabella di realzione ossia :
utenti ....
prodotti ....
utenti_prodotti
Infatti il tipo di relazione che vuoi utilizzare si chiama relazione molti a molti ossia un utente puo' ordinare piu' prodotti e un prodotto puo' essere ordinato da piu' utenti cosi' sulla tabella utenti_prodotti ti vai a salvare le 2 chiavi esterne che refereziano i dati sulle 2 tabelle.
Cosi' un utente potra' ordinare piu' prodotti e un prodotto potra' essere ordinato da piu' utenti diversi.
Inoltre nella stessa tabella potrai salvara data dell'ordine, costi , tipologia di spedizione e quant'altro ti serva tracciare.
ma scusa... non posso utilizzare una tabella
utenti_prodotti al posto di due tabelle distinte utenti e prodotti.
intendi una terza tabella utenti_prodotti?
il fine è quello di creare una tabella ordini, e un utente piò avere più ordini, in date diverse.
Si sono tabelle distinte.
La tabella ordini che dice te fondamentalmente e' la tabella utenti_prodotti qui si ti servono almeno 3 tabelle.
utenti
prodotti
ordini (
id_utente
id_prodotto
data_ordinazione
quantita
metodo_pagamento
metodo_consegna
stato_ordine
)
Cosi' gestisci quello che vuoi
ok, poi per intabellare un ordine specifico per un utente specifico, basta che sulla select, RAGGRUPPI con la stessa data TUTTE le informazioni di un certo utente.
grazie
PS: alla tabella ordini, non serve un id_ordini specifico.. ..
Se pensi che un ordine debba contenere un solo prodotto, allora è sufficiente una tabella ordini.
Ma di solito non è così, per cui avrai una tabella ordini e una tabella dettaglio ordini.
no, un ordine deve avere una miriade di prodotti.Originariamente inviato da luca200
Se pensi che un ordine debba contenere un solo prodotto, allora è sufficiente una tabella ordini.
Ma di solito non è così, per cui avrai una tabella ordini e una tabella dettaglio ordini.
e come sarebbero fatte queste due tabelle?
Dovresti essere tu a sapere quali sono i dati da gestire.
Nella tabella ordini avrai i dati che riguardano l'ordine (id ordine, id utente, data, metodo pagamento, metodo consegna, stato ordine, importo totale ecc.); nella tabella dettaglio avrai una riga per ogni prodotto, con dati come id ordine, codice prodotto, eventuali attributi, quantità, prezzo ecc.
stiamo andando troppo in là.
la cosa deve essere il più semplice possibile. Ma funzionale. si tratta solo di un esercizio.
io ho solo due tabelle:
utenti(id,login,password)
prodotti(id,nome,descrizione,immagine,prezzo)
devo costruirne una, (o due da quel che stiamo dicendo) contente l'ordine (o gli ordini) che un utente può fare.
Al quale inserire una data_di_ordine.
Niente più.
beh, quello che vuoi fare tu lo fai come ti ha detto luca200...
tabella utenti (id_utente, nome,...)
tabella prodotti(id_prodotto, nome, descrizione, ...)
tabella ordini(id_ordine, id_utente, data, ...)
tabella dettaglioOrdini(id_ordine, id_prodotto, prezzo, quantità, ...)
poi per tirare fuori i dati una bella query e hai fatto.
Se posso consigliarti, non mettere il prezzo nella tabella prodotti: il prezzo può essere variabile, ma per recuperare i dati dei vecchi ordini devi anche avere i prezzi vecchi.
Quindi se non vuoi avere prodotti replicati nella tabella ad ogni cambio prezzo, o realizzi una tabella prezzi_prodotti(id_prodotto, prezzo) oppure li metti nella tabella dettaglioOrdini