2017-06-15 66 views
0

我有2個表最佳方式屬性表中的SQL Server

header 
(
    id uniqueidentifier, 
    code varchar(25), 
    description varchar(150), 
    ... 
) 

attributes 
(
    headerId uniqueidentifier, 
    attributeId uniqueidentifier, 
    stringColumn varchar(100), 
    integerColumn int, 
    decimalColumn decimal(16,5), 
    booleanColumn bit, 
    textColumn varchar(500), 
    ... 
) 

Baisically我想實現,將發現所有已經與一些值相關的屬性標題的header.Id通用搜索搜索字符串。

我知道一個搜索索引將是理想的。但目前沒有計劃實施。

我目前的計劃是在頭表中創建一個attributeMeta varchar(max)列,並在包含所有屬性數據的列內存儲一個json,然後對其執行全文搜索索引並對其進行查詢。

這會很好還是有更好的解決方案?鑑於我現在不應該實施搜索索引?

如果你使用的SQL服務器
+0

你的代碼看起來在類和表之間...只有1個varchar列嗎?該列的大小? –

+0

有2個varchar列,一個用於短字符串,另一個用於長字段 – Jester

+0

只需對這2列進行全文搜索,不需要重複數據的另一列 –

回答

0

,嘗試:::

ALTER TABLE header 
ADD COLUMN attributeMeta VARCHAR(MAX) 

UPDATE TABLE header 
SET attributeMeta = 
SELECT 
headerId +','+ 
attributeId +','+ 
stringColumn +','+ 
integerColumn +','+ 
decimalColumn +','+ 
booleanColumn  -- CONCAT AS MANY TABLES AS YOU NEED 
FROM attributes 
WHERE id = attributes .headerId) --im assuming attributes.headerId and headers.id can be used to link the tables 

但我最好的選擇是在相應的字段和表創建索引。

相關問題