【发布时间】:2011-02-21 08:02:27
【问题描述】:
我有一个表,它的记录代表某些对象。为简单起见,我将假设该表只有一列,即唯一的ObjectId。现在我需要一种方法来存储该表中的对象组合。组合必须是唯一的,但可以是任意长度。例如,如果我有 ObjectIds
1,2,3,4
我要存储以下组合:
{1,2}, {1,3,4}, {2,4}, {1,2,3,4}
订购不是必需的。我目前的实现是有一个表Combinations 将ObjectIds 映射到CombinationIds。所以每个组合都会收到一个唯一的 ID:
ObjectId | CombinationId
------------------------
1 | 1
2 | 1
1 | 2
3 | 2
4 | 2
这是上面示例的前两种组合的映射。问题是,查找特定组合的CombinationId 的查询似乎非常复杂。该表的两个主要使用场景是遍历所有组合,并检索特定组合。该表将被创建一次并且永远不会被更新。我通过 JDBC 使用SQLite。有没有更简单的方法或最佳实践来实现这样的映射?
【问题讨论】:
-
您的设计没有问题。您可能应该澄清“用于查找特定组合的 CombinationId 的查询似乎非常复杂”的意思。您要查找组合 ID 的标准是什么?
标签: sql orm combinations