Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    13

    tabelle caratteristiche e prodotti

    ciao ,
    ho un dubbio in fase di progettazione del db...
    in pratica ho una tabella prodotti nella quale vengono inseriti tutti i prodotti con le relative informazioni ,
    ora dovrei creare una tabella per le caratteristiche , che serve a filtrare la ricerca dei prodotti ..ad esempio per un hard disk si protrebbe creare una tabella caratteristiche che tiene conto della memoria quindi ...con un campo per l' id del prodotto e uno per la dimensione della memoria
    il problema è questo ...essendoci piu prodotti di tipologie diverse , quindi con caratteristiche diverse , quale è il miglior modo di organizzare il db ??
    Pensavo di inserire una tabella per ogni tipologia con le caratteristiche utili a filtrare i dati , ma non sono sicuro sia il modo più giusto.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    13
    nessuna idea??

  3. #3
    Originariamente inviato da teoseven
    nessuna idea??
    Non e' chiaro quello che vorresti sapere.

    un dato HD ha delle caratteristiche "esclusive" che possono essere definite come attributi del disco stesso. Quindi vanno immessi nello stesso record di definizione dell'HD.

    Quando poi da altre tabelle dovrai riferirti a quel dato HD ti limiterai ad indicare il suo ID evitando cosi' valori duplicati.

    Si potrebbe anche fare tante tabelle dove vengono parzializzati i vari attributi per poi relazionarli ai vari HD ma la modifica di un attributo comportera' la variazione per tutti gli HD associati. Si presume che un dato HD che nasce in un certo modo manterra' sempre quello stesso modo anche in futuro e quindi ritengo un non senso questa soluzione (tante tabelle)

    Per farti un esempio sarebbe come in una agenda si facessero tante tabelle per la via, la citta', il nome, il cognome per poi associare il tutto tramite gli id in una tabella di unione. Direi proprio una cosa senza senso.

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

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    13
    mi sono spiegato male ....
    allora io ho diversi prodotti , di diverso tipo, ad esempio
    ho due prodotti , un hard disk e una cpu , quando vado nella sezione degli hard disk ho delle caratteristiche per filtrare la ricerca , ad esempio la memoria, quindi clicco sulla memoria che mi interessa e mi appaiono solo gli hard disk che dispongono della memoria specificata....
    nella sezione cpu il procedimento è lo stesso ma filtro la ricerca per il numero di core e non per memoria ....
    quindi il mio dubbio è
    ho una tabella prodotti dove vengono elencati i prodotti ....per le caratteristiche che mi servono per filtrare la ricerca conviene creare una tabella per ogni tipologia ....quindi una tabella caratterstiche cpu nella quale sono associati gli id dei prodotti di tipo cpu e il numero di core e una tabella caratteristiche hard disk nella quale sono associati gli id dei prodotti di tipo hard disk e la memoria??

  5. #5
    Allora avevo capito bene e ti ho risposto anche prima.

    se i parametri degli oggetti sono attributi esclusivi cioe' dell'oggetto vanno nello stesso record dell'oggetto.

    Eventuali descrizioni degli attributi andrebbero in altra tabella per evitare la ripetizione delle caratteristiche identiche.

    In pratica se l'attributo "capacita" in GB fosse 60 perche' scrivere l'id delle capacita' che forse occupa piu' spazio e costringe a query piu' complesse quando quel 60 cosi' e' e cosi' rimarra' fin che sara' presente quell'HD? cioe' un attributo atomico di quell'HD.

    Ragionaci in termini di un indirizzario/agenda e' sempre un paragone valido. Se devo fare l'elenco dei negozi presenti nella via del nominativo allora dovro' fare una tabella con l'elenco dei negozi associati alla via e il record della via associato all'utente. Di certo non ripetero' l'elenco dei negozi presenti nella via per ogni nominativo, cioe' non sono valori "atomici" e che potrebbero cambiare. Ma se devo solo evidenziare la via meglio che sia nello stesso record del nominativo.

    Fare una tabella cpu ed una HD rientra nella logica anche perche' i campi avranno significato e peso ben diversi tra loro ma nel record direi che gli attributi "atomici" debbano essere presenti senza riferirsi con ID ad altre ulteriori tabelle.

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

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    13
    non mi è chiarissimo ...
    in pratica io pensavo di fare una join tra la tabella prodotti e la tabella caratteristiche cpu nel caso si tratti di una cpu o la tabella caratteristiche hard disk nel caso di un hard disk.
    E poi tramite delle clausole 'where' filtrare la ricerca prendendo solo i prodotti che hanno determinate caratteristiche , per la cpu ad esempio prendere i prodotti che hanno solo 2 core e che hanno marca intel ecc.
    però nella tabella caratteristiche devo tenere un campo esterno che mi unisce le 2 tabelle.....
    quindi ....
    cpu1 unita alla tabella caratteristiche cpu nel record dove c' è un riferimento tramite una chiave esterna a quel prodotto ,
    mentre cpu2 avrà un altro record a sua volta con altre caratteristiche ...e così via...

  7. #7
    le caratteristiche del prodotto hanno ragione di esistere in tabella separata solo se le stesse caratteristiche sono applicabili a piu' prodotti. Ma siccome questi tipi di prodotti (HD e CPU) hanno una tipicita' complessivamente abbastanza unica si dovrebbe provvedere ad ulteriori tabelle con ulteriori suddivisioni.

    Se per ogni singolo prodotto si dovesse redigere un apposito record di caratteristiche a lui dedicato tanto vale che queste caratteristiche siano nello stesso record del prodotto e non in una tabella separata. questo e' quanto farei. ovviamente nulla vieta di impostare diversamente il database.

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

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    13
    quindi secondo te dovrei impostare la tabella in questo modo....
    esempio ...omettendo gli altri campi

    prodotti

    id prodotto caratteristica1 caratteristica2

    tieni presente che il numero di caratteristiche può cambiare da tipologia a tipologia quindi può essere 1 solo campo o più campi

    oppure intendevi dividere la tabella prodotti per le varie tipologie?

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