Domanda

Vorrei utilizzare la funzionalità di ricerca full-text di Microsoft SQL Server.

Se ho un cliente tavolo che si riferisce altre tabelle, come Città, Paese, Dipartimento, ecc è meglio per creare una tabella separata che terrebbe i dati de-normalizzati, che sarebbe poi essere indicizzato testo completo, o è meglio per creare un valore fittizio in ogni tabella esterna (ad esempio con chiave -1) e quindi sostituire i NULL dalla tabella client con quelle corrispondenti valori fittizi, quindi creare una vista indicizzata (le voci dummy sono perché la vista indicizzata e l'uso di 'inner join' invece di 'sinistra join') e poi creare un indice completo su questa vista indice?

Con quest'ultimo che non avrebbe dovuto preoccuparsi di popolare la tabella 'de-normalizzata' ogni volta un record di cambiamenti del cliente, o in una delle tabelle stranieri -. Città, paese, Dipartimento, ecc

O forse nessuna delle precedenti, ho potuto usare alcune nuove idee così:)

È stato utile?

Soluzione

Nessuno dei precedenti.

conservare i dati normalizzati e creare indici FT separati su ogni tavolo normalizzata. Quando l'interrogazione dei dati, interrogare la relativa tabella. Se si desidera una query per abbracciano più tabelle (ad es. Se uno Città, Paese o Dipartimento contengono 'York'), quindi usare i normali operatori di query UNION alle ricerche aggregati su più tavoli. Questo è come funziona il FT, in modo da mantenere il vostro disegno in linea con il modo in cui le unità sono dotate opere. Non cercare di imbrogliare, si sta solo andando a scottarsi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top