我正在开发一个 android 应用程序(因此必须使用 sqlite),并且我一直在寻找一种HashSet
在关系数据库中对 Java Set(即)建模的好方法。最初,我认为这将是两个具有多对多关系的表:
table name: sets
_id integer (PK)
table name: fruits
_id integer (PK)
name varchar (unique, so alternate key)
table name: fruit_sets
set_id (FK) // combination key to prevent
fruit_id (FK) // duplicate fruits in each set
所以在这个数据库模型中,我很确定它可以支持如下关系:
[ apple, orange, pear ] != [ apple, orange, grape, pear ]
但,
[ apple, orange, pear ] == [ pear, apple, orange ]
所以,如果我在数据库中有:
set 1 = [ apple, orange ]
set 2 = [ orange, pear, apple ]
set 3 = [ grape, pear ]
set 4 = [ grape, orange, apple, cherry ]
select
当我在 Java 中获得一个 set 时,我正在努力寻找一个 set_id 的好方法。因此,例如,如果我在 Java 中有 HashSet: [ apple, orange, pear ]
,我将如何构造select
查询 a set_id
?
应该返回set_id
:2
...或者有没有一种不同的更好的方法来模拟这种关系?