Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Mysql - dettagli prodotti

    Salve a tutti!
    Stò cercando di fare un comparatore prezzi senza farmi aiutare dagli scripts. La realizzazione non è di tipo speculare, ma senza profitto, diciamo un servizio hai consumatori pulito e onesto, quindi senza prendere soldi da parte dei commercianti.

    Detto questo dovrebbe essere qualcosa che funzioni bene, piano piano ci stò provando, ma mi sono intoppato su un problema che non riesco a ottimizzare o proprio non ci arrivo:
    il DB è mysql 5.6 in innodb
    cè la tabella prodotti, categorie ecc...
    un comparatore prezzi ha anche le specifiche di ogni prodotto es. cpu: mhz, socket, cores ecc....monitor: pollici, risoluzione, entrate, pannello ecc
    Ecco qui casca l'asino(almeno per me) cosa faccio?
    Una tabella prodotti con tutte le colonne delle specifiche di tutti i prodotti?(secondo me assurda)
    Creo una tabella per tipologia prodotto? es. cpu, monitor, hdd ecc e li collego con id_prodotto?
    una tabella dove creo le specifiche? es.
    id_specifiche|id_prodotto|campo|descrizione
    dentro campo ci scriverei: Mhz e dentro descrizione: 3200
    tutto aggacianto al id_prodotto però così creerei tra i 10 e 30 record per ogni prodotto...e se ci sono 10.000 prodotti?
    Forse la soluzione è facilissima...ma proprio non ci arrivo.
    Vi prego di aiutarmi
    GRAZIE!

  2. #2
    Ciao,
    il mio parere, la migliore soluzione è la terza che hai abbozzato:

    tabella_prodotti
    codice:
    PROD_ID	PROD_COD	
    1	PC-DESK-1
    tabella_prodotti_specifiche
    codice:
    PROD_ID	SPEC_ID	VALUE
    1	4	4
    2	5	4
    tabella_specifiche
    codice:
    SPEC_ID	SPEC_DESC	SPEC_UN
    4	CPU		GZ
    5	MEM		GB

    Ciao
    Mik

  3. #3
    Io ti suggerisco di passare a MariaDB (che è compatibile al 100% con MySQL) e usare le colonne dinamiche:
    https://kb.askmonty.org/en/dynamic-columns/

    In pratica hai una colonna di tipo BLOB all'interno della quale puoi creare dinamicamente altre colonne, con le caratteristiche del prodotto specifico.

    Altrimenti ogni soluzione ha i suoi pro e i suoi contro, dipende fondamentalmente dalle tue query. Insomma, dovresti chiederti: sono di più le query in cui preferisco avere una tabella per ogni tipo di prodotto, o quelle in cui preferisco avere anche una tabella con le caratteristiche generiche dei prodotti? Scarterei l'idea della tabella specifiche, perché pur essendo corretta dal punto di vista relazionale, le query non sarebbero efficienti, anche perché non potresti fare (per esempio) un indice sul prezzo.

    Ma, ripeto, è meglio usare le colonne dinamiche di MariaDB.
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  4. #4
    Grazie per la risposta ragazzi!
    E scausate per la risposta mia un pò in ritardo...problemi adsl.

    in the web: la quistione per l'indice per prezzo non ci sono problemi in quanto ho una tabella prezzi collegata al id dei prodotti(almeno io non credo che ci dovrebbero essere grandi problemi, poi può essere che mi sfugge qualcosa).

    Holidaysoft.it: ho visto che hai fatto 2 tabelle, dici che con una non me la cavo? Es:
    SPEC_ID PROD_ID SPEC_DESC SPEC_UN
    4 20 Mhz 3200
    5 20 Socket am3+
    6 32 Memory Speed DDR3-1866/PC3-14900
    .
    .
    .

    prod_id si ripete in quanto spec_desc e spec_un fanno farte di quel prodotto, per esempio cpu amd

    Che ne dite?

    Oppure è molto più gestibile e performante l'esempio di Holidaysoft.it?

    Grazie Holidaysoft.it

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.