我有2张桌子
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),
...
)
实际上,我想实现一般搜索,找到所有具有相关属性的标题的header.Id
,其值为某些搜索字符串。
我知道搜索索引对此非常理想。但目前还没有计划实施。
我目前的计划是在标头表中创建一个attributeMeta varchar(max)
列,并在包含所有属性数据的列中存储一个json,然后在其上执行fullText搜索索引并查询它。
那会没事或有更好的解决方案吗?鉴于我现在不应该实现搜索索引?
答案 0 :(得分:0)
如果您使用的是sql server,请尝试:::
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
但最好的办法是在相应的字段和表格中创建索引。