È sicuro affermare che il modello di database EAV / CR è errato. Detto ciò,
Domanda: quale modello di database, tecnica o modello dovrebbe essere utilizzato per gestire "classi" di attributi che descrivono prodotti di e-commerce che possono essere modificati in fase di esecuzione?
In un buon database di e-commerce, memorizzerai classi di opzioni (come la risoluzione TV, quindi hai una risoluzione per ogni TV, ma il prodotto successivo potrebbe non essere un televisore e non avere "Risoluzione TV"). Come li memorizzi, esegui ricerche in modo efficiente e consenti ai tuoi utenti di impostare tipi di prodotto con campi variabili che descrivono i loro prodotti? Se il motore di ricerca rileva che i clienti in genere cercano TV in base alla profondità della console, è possibile aggiungere la profondità della console ai campi, quindi aggiungere una singola profondità per ciascun tipo di prodotto TV in fase di esecuzione.
C'è una bella caratteristica comune tra le buone app di e-commerce in cui mostrano una serie di prodotti, quindi hanno menu laterali "drill down" in cui è possibile vedere "Risoluzione TV" come intestazione e le prime cinque risoluzioni TV più comuni per il trovato insieme. Fai clic su uno e mostra solo i televisori di quella risoluzione, permettendoti di approfondire ulteriormente selezionando altre categorie nel menu laterale. Queste opzioni sarebbero gli attributi dinamici del prodotto aggiunti in fase di esecuzione.
Ulteriori discussioni:
Per farla breve, ci sono collegamenti su Internet o descrizioni di modelli che potrebbero "accademicamente" risolvere la seguente configurazione? Ringrazio Noel Kennedy per aver suggerito una tabella delle categorie, ma la necessità potrebbe essere maggiore. Lo descrivo in un modo diverso di seguito, cercando di evidenziarne il significato. Potrei aver bisogno di una correzione del punto di vista per risolvere il problema, oppure potrei dover approfondire l'EAV / CR.
Adoro la risposta positiva al modello EAV / CR. I miei colleghi sviluppatori dicono tutti ciò che Jeffrey Kemp ha toccato di seguito: "le nuove entità devono essere modellate e progettate da un professionista" (tolto dal contesto, leggi la sua risposta di seguito). Il problema è:
- le entità aggiungono e rimuovono gli attributi settimanalmente
(le parole chiave di ricerca determinano gli attributi futuri) - le nuove entità arrivano settimanalmente
(i prodotti vengono assemblati dalle parti) - le vecchie entità vanno via settimanalmente
(archiviate, meno popolari, stagionali)
Il cliente desidera aggiungere attributi ai prodotti per due motivi:
- dipartimento / ricerca per parole chiave / tabella comparativa tra prodotti simili
- configurazione del prodotto di consumo prima del pagamento
Gli attributi devono avere un significato, non solo una ricerca per parole chiave. Se vogliono confrontare tutte le torte che hanno una "glassa di panna montata", possono fare clic sulle torte, fare clic sul tema del compleanno, fare clic su glassa di panna montata, quindi controllare tutte le torte che sono interessanti sapendo che hanno tutte la glassa di panna montata. Questo non è specifico per le torte, solo un esempio.