让我说我有一个简单的桌子:
笔记本电脑
Id (int autoincrement,
Name nvarchar(50)
2gb Ram ( bit ),
4gb Ram ( bit ),
250 hdd ( bit )
500 hdd ( bit )
所以我们有一个笔记本电脑桌子,它只有4种可能的配置。
如果它具有2gb的ram和250gb的硬盘,则它具有
(id product), (name product) 1 0 1 0
我希望这很简单。
现在我想获得这4个可以具有多个组合并以数字表示的特征。
因此,当用户选择他想要一台具有2GB内存和250GB内存的笔记本电脑时, 然后,我将在数据库中有一列“ Characteristics_combinatons”
因此1 0 1 0变成..类似于.. 1010。
所以我会做
Select * from Laptops where Characteristics_combinatons = 1010.
然后我可以在该列上建立索引,用户将必须更快地搜索产品。
是否有更好的方法或标准方法来处理此类问题?
答案 0 :(得分:1)
您可以使用concat()
创建一列,然后进行搜索。我会使用一个字符串:
alter table laptops add combo as (concat([2gb Ram], [4gb Ram], [250 hdd], [500 hdd]) persisted;
create index idx_laptops_combo on laptops(combo);
select l.*
from laptops
where combo = '1010';