Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    11

    Database, problema progettazione

    Un saluto a tutti.

    Ho una domanda da porvi, praticamente ho una tabella con degli oggetti con ID univoco.

    Quello che devo fare è far inserire, attraverso un form PHP, in un'altra tabella un numero N di prodotti della tabella precedente.

    Piccolo esempio:
    codice:
    +----------+----------------------------------------+
    | indice   | nome                                   |
    +----------+----------------------------------------+
    | 1        | test                                   |
    | 2        | test                                   |
    | 3        | test                                   |
    | 4        | test                                   |
    | 5        | test                                   |
    | 6        | test                                   |
    +----------+----------------------------------------+
    Nel form mi compaiono i 6 'test' e seleziono il numero 1, 4 e 5. Ora, come inserisco nell'altra tabella l'ID univoco?

    Li metto in un VARCHAR separati da una virgola per poi separarli in futuro? O c'è una soluzione migliore?

  2. #2
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273

    Re: Database, problema progettazione

    non sono sicuro di aver capito bene (e le info sul db e le sue funzioni sono un po' scarne...) ma solitamente se devi fare una relazione molti a molti (esepmio classico prodotti,clienti) devi avere una tabella separata con due colonne ID1, ID2
    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

  3. #3
    Utente di HTML.it L'avatar di Emyl
    Registrato dal
    Jul 2004
    Messaggi
    250
    Se i prodotti non sono molti puoi utilizzare una soluzione simile a questa:

    http://freephp.html.it/articoli/view...olo.asp?id=163
    "Ci sono 10 tipi di persone, quelli che capiscono i numeri binari...
    e quelli che non li capiscono."

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    11
    E' una relazione uno a molti. Un utente può avere più prodotti associati.

    Facendo un esempio più ampio pensavo di fare tre tabelle: utenti, prodotti e contratto. Nel primo inserisco le informazioni sulla persona, nel secondo tutti i prodotti e nel terzo vorrei prendere l'indice dell'utente ed i vari indici dei prodotti associati.
    Originariamente inviato da Emyl
    Se i prodotti non sono molti puoi utilizzare una soluzione simile a questa:

    http://freephp.html.it/articoli/view...olo.asp?id=163
    Ti ringrazio ma purtroppo non fa al mio caso, anche perchè i prodotti non sono limitati.

  5. #5
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273
    Originariamente inviato da Kaldais
    E' una relazione uno a molti. Un utente può avere più prodotti associati.
    strano che sia uno a molti, un prodotto non può essere associato a più utenti?

    se è si allora giusto 3 tabelle
    utente-> dati utente
    prodotto-> dati prodotto
    relazione -> idutente, IDprodotto (per ogni songolo abbinamento)

    se è no inserisci un campo IDutente nella tabella prodotto.
    ma è strano sia così (solo se hai un record per ogni singolo "Pezzo")

    eraclito
    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    11
    Ops, pardon .. giusto: è una relazione molti a molti.

    La tabella prodotto comunque viene usata solo come 'riferimento', praticamente alla creazione del form il codice si prende tutti i prodotti inseriti in quella tabella e li inserisce in una select area.

  7. #7
    Originariamente inviato da eraclito

    utente-> dati utente
    prodotto-> dati prodotto
    relazione -> idutente, IDprodotto (per ogni songolo abbinamento)

    eraclito
    Cosi' e corretto. la relazione molti <-> molti e' ammessa solo come schema referenziale, ma non nella ottimizzazione del db.

    la tabella relazione dovra' avere un record per ogni abbinamento,
    ed avra' anche una colonna codice_ordine che riunira' tutti i prodotti che fanno parte dello stesso ordine.

    idutente <-> idprodotto <-> codice_ordine



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

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Per avere lavorato su diversi software di gestione aziendale, ti sconsiglio l'uso di id auto_generati. Di solito si usa un campo testo lungo circa 20 caratteri per dare un codice ad un articolo.

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    11
    Originariamente inviato da piero.mac
    Cosi' e corretto. la relazione molti <-> molti e' ammessa solo come schema referenziale, ma non nella ottimizzazione del db.

    la tabella relazione dovra' avere un record per ogni abbinamento,
    ed avra' anche una colonna codice_ordine che riunira' tutti i prodotti che fanno parte dello stesso ordine.

    idutente <-> idprodotto <-> codice_ordine
    Quindi sono costretto ad usare un'ulteriore tabella di tipo 'relazione', se ho ben capito.

    Vi ringrazio!

  10. #10
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Originariamente inviato da Kaldais
    Quindi sono costretto ad usare un'ulteriore tabella di tipo 'relazione', se ho ben capito.

    Vi ringrazio!
    Di solito c'è una tabella per la testata dell'ordine (n° di ordine, dati cliente, indirizzo di consegna, indirizzo di fatturazione, etc...) che ha come chiave il numero di ordine.
    Poi c'è una tabella per gli articoli (n° di ordine, riga ordine, codice articolo, quantità, prezzo, sconto, etc...) la cui chiave è il numero di ordine ed il numero di riga.

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.