Fornire la ricerca su campi personalizzabili

1

Ho alcuni campi personalizzati definiti dall'utente che corrispondono a un ticket (un ticket è un'entità che ha campi soggetto, stato e personalizzati). Devo cercare i biglietti in base ai valori dei campi personalizzati. Un campo può essere un decimale, una stringa, una data o un booleano.

Esempio -         Un ticket ha campi soggetto, stato e personalizzati: nome del prodotto, descrizione del prodotto, ID del prodotto, prezzo del prodotto, categoria del prodotto.

Caso di utilizzo - Abbiamo bisogno di cercare su campi personalizzati. I casi sono menzionati di seguito.

  • Caso 1: il normale è uguale alla ricerca dei valori. (ricerca basata su prodotto
  • Caso 2 - Ricerca intervallo su decimale, tipi di data. (cercando prodotto il cui prezzo > 2000)
  • Caso 3: contiene la ricerca di stringhe (ricerca di prodotti la cui descrizione contiene cibo)
  • Caso 4: un campo può anche essere un elenco a selezione multipla (ad esempio casella di selezione a più selezioni) (un prodotto può ricadere su più categorie)
  • Caso 5: possiamo eliminare o aggiungere un nuovo campo personalizzato nel sistema.

Possibile soluzione -         Tabella separata per campo personalizzato che ha una colonna separata per ogni campo personalizzato.

Contro : poiché non è pre definito quali campi sono idonei per la ricerca, devo aggiungere un indice su ogni colonna che rallenta l'inserimento.                        Contiene la ricerca (ilike search) è molto lento.

Attualmente sto usando postgres ma sono aperto a soluzioni che coinvolgono database nosql e serach elastico.

    
posta Tuhin Dey 14.08.2018 - 10:46
fonte

0 risposte

Leggi altre domande sui tag