假设一个数据库表包含一些元素的属性:
Table Element (let's say 1 000 000 rows):
ElementId Property_1 Property_2 Property_3
------- ---------- ---------- ----------
1 abc 1 1
2 bcd 1 2
3 def 2 4
...
该表经常更新。我想存储这些元素集的定义,以便使用单个 SQL 语句得到例如。
SetId Element
--- -------
A 2
B 1
B 3
C 2
C 3
...
我还想在需要时更改定义。到目前为止,我已将集合的定义存储为交集的并集,如下所示:
Table Subset (~1 000 rows):
SubsetId Property Value Operator
-------- -------- ----- --------
1 1 bcd =
1 3 1 >
2 2 3 <=
...
和
Table Set (~300 rows):
SetId SubsetId
--- ------
...
E 3
E 4
F 7
F 9
...
在 SQL 中,我想我可以从表中生成很多 case 表达式,但到目前为止,我只是加载了表并使用了一个外部工具来完成基本相同的事情。
当我想出这个时,我很高兴(并且也实现了它)。最近我一直在想它是否像我想象的那样美妙。有没有更好的方法来存储集合的定义?