当前位置: 首页 > 面试题库 >

查找SQL中超集的子集的所有集

高承望
2023-03-14
问题内容

我正在考虑一个应用程序的设计,该应用程序的主要功能围绕着找到所有给定集合的子集的集合的能力而展开。

例如,给定输入集A = {1,2,3 … 50}和集合集B = {B1 = {3,5,9,12},B2 = {1,6,100,123,45}。 ..
B500 = {8,67,450}},返回所有属于A子集的B。

我想它与搜索引擎类似,除了我并没有设置A小而B大的奢侈。在我的情况下,B通常小于A。

我在这里找到了类似的问题,但想知道是否还有任何更有效/标准的方法。


问题答案:

哈珀的答案是正确而优雅的。当然,这是经验丰富的SQL编码人员中的“标准”。要求当然是必须对数据库进行规范化:父级不重复;父母::孩子有两个关系;在子表中有两个唯一的索引(ParentKey,ChildKey)和(ChildKey,ParentKey),“否则所有投注均关闭”。不可能获得比这更好的性能(假设服务器已针对硬件进行了正确配置,等等)。下一步是6NF,它确实可以显着提高性能,但是除非必须如此,否则您无需走到那里。如果您的B小于您的A,则速度会非常快。

替代方法是使用子查询。根据Db供应商的不同,子查询(尤其是B小于As的情况)会更快。例如。Sybase处理子查询要比MS好得多。



 类似资料:
  • 问题内容: 查找带有一组标签中任何一个的文章是一个相对简单的联接,并且已经讨论过:最佳数据库(MySQL)结构:包含优先标签的文章 但是,如果我正在搜索,并且想要查找带有所有标签集的文章该怎么办? 为具体起见,假定下表: 我想出了这个方法,我认为这可能会起作用,但是它非常庞大,丑陋且不清楚,因此我认为必须有更好的方法: (本质上,请计算相关标签的数量是否为期望值。) 问题答案: select ar

  • 我有个算法问题。我试图从一个更大的值集合中找到所有唯一的值子集。 例如,假设我有集。我能用什么算法找到3的这些子集? 子集不应重复,且顺序不重要,因此集{1,2,3}与集{3,2,1}相同。鼓励使用Psudocode(或常规类型)。

  • 示例:给定集合,S{4,8,10,16,20,22}目标,T=52。 约束条件:集合S的元素N个数限制为8个。因此,NP时间解是可以接受的,因为N有一个小的上界。时间和空间的复杂性并不是一个真正的问题。 输出: 我正在寻找一些编程示例(最好是C++)或算法,它可以用插图/示例计算这样的子集?

  • 我正在使用Firebase Firestore作为BaaS构建一个应用程序。 但当我尝试在我的应用程序上创建提要/实现全文搜索时,我面临一个问题。 我希望能够搜索所有用户的帖子,问题是,用户帖子在Firestore数据库中的结构如下: 帖子(收藏)- 我想遍历每个用户的用户帖子子集合并获取提要的所有数据,并使用Algolia或ES等全文搜索应用程序来实现它。 > 我可以遍历特定的用户ID(代码如下

  • 这类似于子集和问题,只是稍有不同,不是检查集合是否有一个和为9的子集,而是我们必须找到这样的子集的个数。我在这里遵循子集和问题的解法。但是我想知道如何修改它来返回子集的计数。

  • 本文向大家介绍查找C ++中所有区间的交集,包括了查找C ++中所有区间的交集的使用技巧和注意事项,需要的朋友参考一下 假设我们有N个间隔,形式为{L,R},L是开始时间,R是结束时间。我们必须找到所有间隔的交集。相交是位于所有给定间隔内的间隔。如果找不到,则返回-1。例如,如果间隔类似于[{1,6},{2,8},{3,10},{5,8},则输出间隔为{5,6} 为了解决这个问题,我们将按照以下步