我为游戏中的所有项目创建了一个数据库。一个项目可以有0 - 3个属性。这些属性分别存储在Atttribute1, Atttribute2, Atttribute3
列中。
属性的顺序很重要,这意味着我只能简单地将attribute1
与attribute3
交换。
Attributes
由ID表示,它们存储在Attribute
表中。
在搜索时,我想让用户选择查找包含他们指定的三个属性的匹配项,即使它们的顺序不正确。
示例:item1具有属性1 2 2,如果用户指定2 2 1则其匹配但3 2 2不匹配。
表示null情况:null 2 2和2 2 2不匹配
我考虑过使用
Attribute1 in (input1, input2, input3) and Attribute 2 in (input1, input2, input3) ...
但是然后匹配1 2 2和1 1 2。
我还考虑将所有三列联合到一个新的临时表中,但这可能会破坏索引并降低搜索速度。
答案 0 :(得分:0)
您确实应该将属性存储在联结表中,每个项目和每个属性都有一行。
但是,你可以使用显式逻辑做你想做的事情:
NSTask