Frage

Ich mag die Volltextsuche-Funktion von Microsoft SQL Server verwenden.

Wenn ich einen Tisch-Client habe, die anderen Tabellen wie Stadt bezieht, Land, Abteilung etc. ist es besser, eine separate Tabelle zu erstellen, die de-normalisierten Daten halten würde, die dann volltextindiziert sein würden, oder ist es besser, einen Dummy-Wert in jeder Fremdtabelle (beispielsweise mit der Taste -1) und dann ersetzen die NULL-Werte von der Client-Tabelle mit den entsprechenden Blindwerte, dann eine indizierte Ansicht erstellen (diese Dummy-Einträge sind wegen der indizierten Sicht und dem Einsatz zu schaffen, von ‚innere Verknüpfung‘ anstelle von ‚LEFT JOIN‘) und dann einen Volltextindex für diesen Index Ansicht erstellen?

Mit letzterem würde ich nicht zu kümmern, über die ‚de-normalisiert‘ Tisch bevölkern jedes Mal, wenn ein Datensatz Änderungen im Client oder in einem der ausländischen Tabellen -. Stadt, Land, Abteilung, etc.

Oder vielleicht keine der oben genannten, ich einige neue Ideen als auch nutzen könnte:)

War es hilfreich?

Lösung

Keine der oben Genannten.

Halten Sie die Daten normalisiert und getrennt auf jeder normalisierte Tabelle FT Indizes erstellen. Wenn die Daten abfragen, Abfrage der entsprechenden Tabelle. Wenn Sie eine Abfrage wollen mehrere Tabellen zu überbrücken (z. B. wenn eine Stadt, Land oder Abteilung enthält 'York), dann verwendet normalen Abfrage UNION Betreiber Aggregat Suche über mehrere Tabellen. Dies ist, wie FT funktioniert, halten Sie so Ihr Design mit der Art und Weise ausgerichtet die Funktion funktioniert. Versuchen Sie nicht zu betrügen, sie ist nur selbst gehen zu verbrennen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top