集合成员和关系

原创 2008年04月28日 13:42:00
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

集合之间的关系

为了介绍我在本文中讨论的问题,首先我们来回顾一下集合论中表示集合之间关系的几个概念。我使用这些概念来为本文所讨论的问题定义条件。我用大写字母指定集合名称,用编号的小写字母指定集合成员,用里面包含集合成员的花括号指定集合本身。

集合论描述了集合之间可以存在的某些关系

集合U等于集合V,条件是:U的所有成员都存在于V中,并且V的所有成员都存在于U中-例如,U={u1,u2,u3},V={u1,u2,u3}。

如果U的所有成员都存在于V中,则U是V的子集。当U等于V时,U是V的子集,V也是U的子集。

当U是V的子集,但V不是U的子集时,U是V的真子集-例如,U={u1,u2,u3},V={u1,u2,u3,u4}。

我在本文中讨论的任务涉及到确定与另一个项组有某种关系的项组,也就是集合。我们先来看一个提出问题的示例。

OrdersOrderDetails方案

我使用的方案涉及到作为示例的Orders表和OrderDetails表,您可以运行清单1显示的脚本在tempdb中创建并填充这两个表。这些表只包括了与本文讨论内容相关的列-即,Orders中的orderid列和OrderDetails中的orderid和productid列。Orders表中的每个订单在OrderDetails表中可能不存在相关行;或存在一个或多个相关行,每一行都包含不同的产品。就其本质来说,每个定单都是实体的一个实例,但在本文中,我所指的定单是属于定单的一组详细信息。

应用程序用户输入一组代表新定单的产品,您的代码将它们存储在#ProdList临时表中:

CREATETABLE#ProdList(productidintNOTNULLPRIMARYKEY)INSERTINTO#ProdListVALUES(2)INSERTINTO#ProdListVALUES(3)INSERTINTO#ProdListVALUES(4)

您从市场营销部门接受了几个任务,要求您确定新定单和现有定单之间的不同关系。这些关系对于市场营销部门可能很重要,营销部门会据此确定采购模式,考虑某些产品组的折扣,等等。

任务1PO的子集。您的第一个任务是确定包含#ProdList中的所有产品的定单。用集合术语来说,如果O代表构成定单的定单详细信息的集合,P代表#ProdList中的产品的集合,您就要查找满足“P是O的子集”这一条件的定单。您的查询应该返回定单A和B。

下面的查询为您提供了该任务的解决方案:

SELECTorderidFROMOrderDetailsWHEREproductidIN(SELECTproductidFROM#ProdList)GROUPBYorderidHAVINGCOUNT(*)=(SELECTCOUNT(*)FROM#ProdList)

此代码查询OrderDetails表,筛选出只包含存在于#ProdList中的产品的行。该查询按orderid对结果进行分组,然后筛选产品数与#ProdList表中的产品数相同的组。该查询只返回包含#ProdList中的所有产品的定单。

任务2P等于O您的第二个任务是确定包含#ProdList中的所有产品但不包含其他产品的定单。用集合术语来说,您要查找满足“P等于O”这一条件的订单。在前面的查询中,WHERE子句去除了那些包含#ProdList中不存在的产品的行,所以该查询未考虑那些行。但这一次,您需要考虑所有行。要解决此问题,您可以先编写一个返回OrderDetails中的所有行的查询,向结果追加到一个名为inlist的列中;对于#ProdList中存在的产品,该列的取值为1,对于不包含的产品,该列的取值为-1:

SELECT*,CASEWHENproductidIN(SELECTproductidFROM#ProdList)THEN1ELSE-1ENDASinlistFROMOrderDetails1 <script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

测试环境搭建实战集合

适用人群:无基础和初级测试工程师;想系统学习和提高的;想步入性能测试领域的;感兴趣的;友情提示,觉得自己是高手的请绕行! 课程特点:史上最全环境搭建合集!要自己动手,不是说看看就会的!(包括但不限于下方内容) 1、LAMP 2、LNMP 3、LANMP 4、.net 5、java 6、apache、nginx、tomcat负载均衡环境 QQ群288567073
  • 2015年07月03日 09:55

Collection 集合大家族

转载来自 http://www.cnblogs.com/chenssy/p/3495238.html在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们...
  • xinyuehuixin
  • xinyuehuixin
  • 2016-08-23 10:27:48
  • 367

操作Word里的表格,提示 集合所要求的成员不存在?

操作Word里的表格,提示 集合所要求的成员不存在? 遇到的问题: c++操作cell导出的word中的表格,提示集合中所要求的成员不存在; 分析原因: word中没有插入书签,导出时不能正确...
  • ghevinn
  • ghevinn
  • 2015-01-19 10:16:57
  • 8617

java中Collection集合成员花名册

java2提出了collection的概念,本文对collection框架进行分析,并对java2之前的容器进行回顾。 0x01 从Arraylist说起什么是集合,简单地说,集合类似可以自适应、动态...
  • java_student09
  • java_student09
  • 2016-09-27 22:58:56
  • 16952

集合框架_HashSet存储自定义对象并遍历练习

package cn.itcast_03; import java.util.HashSet; /* * HashSet集合存储自定义对象并遍历。如果成员变量的值相同即为同一个对象 * *...
  • L1585931143
  • L1585931143
  • 2017-01-04 22:05:12
  • 252

LinkedList 去除集合中自定义对象的重复值(对象的成员变量值都相同)

package cn.edu360; import java.util.ArrayList; import java.util.Iterator; import java.util.Li...
  • JAVAJJX06012002
  • JAVAJJX06012002
  • 2017-11-13 08:24:02
  • 140

离散数学之集合上关系的判断

这次实验由于自己这周遇到了太多了的事情所以没有认真的完成,但还是把代码拿出来和大家分享分享 这周太挫败了 1.acm校赛没能拿奖(这点对我打击太大了,不过我这样的人总是当时心情不爽,过了几天也就好...
  • u011613367
  • u011613367
  • 2016-04-30 14:09:12
  • 1225

Java中集合类的关系图

参考文献http://www.cnblogs.com/xwdreamer/archive/2012/05/30/2526822.html  上述类图中,实线边框的是实现类,比如ArrayLis...
  • Real_neu
  • Real_neu
  • 2016-10-15 10:08:12
  • 2924

史上最全Java集合关系图

说是史上最全,或许有点吸引眼球的嫌疑了,但我在网上确实也没有找到更全的,这图也是我对照Java源码挨个分析,画出了较为常见的关系图,及其重要特性。 图中部分集合的使用事例可以参见我的github(点击...
  • u010887744
  • u010887744
  • 2016-01-24 22:46:51
  • 8153

c#类成员辨析

  • 2013年01月04日 18:58
  • 37KB
  • 下载
收藏助手
不良信息举报
您举报文章:集合成员和关系
举报原因:
原因补充:

(最多只允许输入30个字)