Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: concetti - tabelle SQL

  1. #1

    concetti - tabelle SQL

    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)


    ?

  2. #2
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    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.

  3. #3
    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.

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    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

  5. #5
    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.. ..

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    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.

  7. #7
    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.
    no, un ordine deve avere una miriade di prodotti.



    e come sarebbero fatte queste due tabelle?

  8. #8
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    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.

  9. #9
    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ù.

  10. #10
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.