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

    MySQL: campo multi-record

    Ciao a tutti,

    Ho iniziato da poco ad affacciarmi sul mondo PHP e MySQL. Come esercizio volevo mettere su un semplice sito di e-commerce. Sono in fase di progettazione e stavo quindi pensando di strutturarlo nel seguente modo:
    Creare un unico database con all'intero 3 tabelle; ovvero
    1. Prodotti. con codice articolo, descrizione, prezzo ecc
    2. Clienti. con nome cognome, email ecc.
    3. Ordini. Dovrà avere un campo numero dell'ordine, un campo che punta al codice cliente (linkando alla tabella clienti) e un campo per gli articoli ordinati. E qui sta il problema: mentre tutti gli altri campi hanno un singolo record (p.e. il cognome del cliente), questo campo dovrebbe avere più record (ovvero più articoli). Come faccio a gestire più records all'interno di un singolo campo? O forse sto sbagliando approccio?
    Qualcuno mi sa aiutare?

    Grazie.

    Ciao

  2. #2
    in questo caso io farei un'altra tabella con gli articoli ed un campo "idordine" che fa riferimento alla tabella ordini appunto.

    volendo comunque, l'inserimento di più valori in uno stesso campo è fattibile in modo semplice separandoli con un carattere determinato, es. "_", e riseparandoli in fase di parsing con il comando explode, che appunto divide una stringa in tot valori usando un carattere a scelta ed assegna i valori ad un array.

  3. #3
    Stai errando l'approccio....

    Il record e' il contenitore dei campi e non viceversa.

    Se un record ordini e' composto da:

    id_ordine - id_cliente - id_prodotto - altri_campi

    ogni ordine sara' un record diverso.

    Ovvio che ogni tabella dovra' avere il proprio id:

    Clienti -> id_cliente
    Prodotti -> id_prodotto

    Che verranno associati nei rispettivi campi della tabella Ordini.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Grazie per le vostre celeri risposte,

    Quello di usare un campo testo ed inserire li gli articoli suddivisi da un segno separatore mi era venuto in mente anche a me, ma volevo sapere se c'era un modo più 'elegante' o meglio più corretto per farlo. Ma se non c'è, adotterò questo metodo.

    Grazie.
    Ciao

  5. #5
    Originariamente inviato da ilfuretto
    Grazie per le vostre celeri risposte,

    Quello di usare un campo testo ed inserire li gli articoli suddivisi da un segno separatore mi era venuto in mente anche a me, ma volevo sapere se c'era un modo più 'elegante' o meglio più corretto per farlo. Ma se non c'è, adotterò questo metodo.

    Grazie.
    Ciao
    Inserire piu' info nello stesso campo suddivise da quel che ti pare... e' una bestialita' informatica.

    Ma poi ognuno attacca il carro dove piace al bue.... basta non postare poi per chiedere come estrarre o selezionare i dati.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Inserire piu' info nello stesso campo suddivise da quel che ti pare... e' una bestialita' informatica.
    Appunto, immaginavo.
    Infatti volevo trovare una soluzione migliore. Qualcuno ha un'idea?

    Ciao

  7. #7
    Originariamente inviato da ilfuretto
    Appunto, immaginavo.
    Infatti volevo trovare una soluzione migliore. Qualcuno ha un'idea?

    Ciao
    Una dritta l'ho data prima....

    Tabella ordini

    id_ordine
    id_cliente
    id_prodotto
    quantita
    cod_ordine
    data_inserimento
    evaso_il
    quant_altro


    Ogni ordine un record. L'ordine viene identificato da un codice,
    puoi togliere, mettere, modificare la quantita' ecc... il prezzo


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Abbi pazienza, sarò tardo io...

    Se ho capito bene intendi dire che devo avere più righe per lo stesso ordine all'interno della tabella ordini?
    Un esempio pratico:

    Mario Rossi ordina 1 cafettiera, 1 brocca e 4 bicchieri. All'interno della tabella ordini avrò quindi la seguente situazione:

    |id_ord|id_cliente| id_prodotto |qtà|cod_ordine| data |
    |------|----------|-------------|---|----------|--------|
    | 0012 | 12345 | cafettiera | 1 | A12 |12/08/04|
    | 0013 | 12345 | brocca | 1 | A12 |12/08/04|
    | 0014 | 12345 | bicchieri | 4 | A12 |12/08/04|

    Giusto???

  9. #9
    Per più chiarezza:

    codice:
    |id_ord|id_cliente| id_prodotto |qtà|cod_ordine|  data  | 
    |------|----------|-------------|---|----------|--------| 
    | 0012 |   12345  | cafettiera  | 1 |    A12   |12/08/04| 
    | 0013 |   12345  |   brocca    | 1 |    A12   |12/08/04| 
    | 0012 |   12345  |  bicchieri  | 4 |    A12   |12/08/04|

  10. #10
    In via di massima si.

    Il prodotto viene descritto nella sua tabella. riporterai solo l'id del record. Non si devono duplicare i dati. Metti che da caffettiera diventi moka... dovresti correggere tutti i record.

    Se cerchi l'utente lo trovi tramite l'id, cosi' il prodotto. Se cerchi un' ordine lo trovi tramite il codice ordine.... e cosi' via.

    Puoi mettere quanti campi vuoi, senza pero' mai duplicare dati.

    id_ordine si presume un id autoicrement e quindi univoco.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.