云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名注册_唐山建设工程信息网站_是什么

小七 141 0

阿里数据库_如何选择_云服务器ecs

博客多对多的关系可能很复杂。尤其是当涉及到表中的数据时。除非您了解不同的场景、它们的解决方案,以及如何与数据建立良好的关系。作为一个总体概述,让我们暂时回到基本问题上来,并提醒自己"数据库"和"关系"是什么意思。这将使我们在处理不同问题时更容易将其形象化。首先,数据库的定义。这只是一种组织信息的方法,这样您就可以根据需要轻松地访问、管理和更新信息。如您所知,这些数据被组织成行、列和表,并且还对其进行了索引,以便您能够快速、轻松地找到所需的数据。到目前为止,很明显。当我们讨论数据库中不同数据项之间的"关系"时,这将指定用于组合来自一个或多个表的数据的逻辑。您可以通过连接两个或多个表之间的字段来创建关系,这将确定仪表板小部件(如透视表)中反映的数据。有三种关系类型:一对一关系——在这种情况下,用于连接两个表的字段在每个一排,发发淘客,一排-多对多关系——在这种情况下,一个表为每一行保存唯一值,而另一个表为第一行中的任何或所有对应值保存重复值桌子。很多-多人关系在这种情况下,表的两边都有重复的值,这会导致对它运行的每个查询都进行过多的计算。了解M2M关系及其后果定义:您可以考虑这样一个一般规则:当两个或多个表中的一个字段包含相同的值,并且这些值在两个表中都是重复的,则基于此字段建立了一个多对多关系。我们知道,这很令人困惑,所以这里有一个商业案例:酒店可以有一个包含预订数据的数据表和一个包含付款数据的表。在这两个表中,都存储了客人的姓名。一位客人可以在其名下进行多次预订,也可以在其名下记录多次入住费用。如果根据客人的姓名创建预订和付款表之间的关系,则会创建多对多关系(因为客人的姓名在每个表中出现多次)。负面后果:这种关系的问题在于,它可能会创建复杂的数据集:不返回正确的结果,或者使用过多的计算资源而不返回任何结果。这两种情况都会导致数据混乱,例如创建重复项、错误的结果和性能滞后,物联网关键技术,这就是为什么许多人试图完全避免多对多关系。解决方案:有几种方法可以解决或绕过多对多的关系,这些方法应根据业务模型和手头业务问题的逻辑进行选择。但是,第一步是测试您是否正在处理多对多关系(请参见下一节),然后根据模式逻辑,应用最佳解决方案。确定你处于什么样的关系中通过检查关系的数据建模并确定关系每侧的唯一值和重复值的确切数量,可以轻松测试关系是否是多对多。如果唯一值和重复值的值相同,则不存在重复,并且这种关系是一对多或一对一。这意味着我们所有的客户身份证只会出现一次。你可以在这一阶段停止调查,因为即使关系的另一方对客人ID有重复的值,你仍然要处理一对多的关系,其中唯一值是"预订"方,重复值是"付款"侧面。如果重复值的数量更大而不是唯一值的数量,那么关系的这一边有重复的值,企业信息化软件,你需要调查关系的另一边:如果关系的另一边产生唯一的值,这是一对多关系。如果没有,淘客大联盟,而且有两个以上的表与此关系相关,我们手上有很多对多的关系。解决M2M关系的最佳方法有很多方法可以解析M2M关系,但是这里有一些基于M2M关系数量和所涉及表数量的常用方法。如果有两个表,一个关系,最好的选择是:把这种关系分成两个独立的一对多的关系关系。创建聚合表。如果有两个以上的表和一个以上的关系,大数据培训班,最好的选择是:使用Lookup函数从一个表中复制值,并根据逻辑将其导入另一个表中测试。合并两张桌子合二为一。理解多对多关系最重要的一点是要知道需要避免这些关系,以确保您拥有准确的数据、没有重复的值以及您的性能不会滞后–M2M关系的负面后果将破坏用户体验并阻止查询。这里有5个简单的规则,当你开始使用Sisense BI软件时,这是一个简短而甜蜜的指南,可以确保你与你的数据保持良好的关系。多对多关系和SQL数据库好消息是:SQL和其他关系数据库为多对多关系提供了大量支持,这要归功于它们的引用完整性。这样可以使关系与底层实体正常工作,而SQL非常擅长在查询中组合这一点。这使得SQL在处理多对多关系方面比其他编程语言好得多,因为大多数语言都不支持使引用与引用保持一致,也不支持简化遍历。考虑到这一点,现在让我们看一个简单的示例,该示例展示了如何在SQL数据库中可视化多对多关系。想象一下大学应用程序用来跟踪学生数据的数据库。这里包含的两个表格是"学生"和"论文",指的是每个学生可以参加的所有不同的课程。每个学生将同时参加许多不同的论文。这本身就是一对多的关系。然而,每一篇论文同时也被许多不同的学生研究。这就形成了一种多对多的关系。那么,如何从构建SQL数据库的角度来解决这个问题呢?好吧,这种关系将被分解成中间表。在上面的示例中,这可能意味着有第三个表,其中包含列"学生号"、"论文号"、"学期"和"年"。在某一年的某个学期里,每一个学生在某个特定的学期内完成了一篇特定的论文,然后在表格中的新的一行中显示出来。Student_ID返回到Student master表,Paper斨ID指代Paper master table。喂!许多学生可以涉及许多学科。或者,让我们再举一个例子,您需要在关系的两边创建多个实例:跟踪电子商务网站上的订单。每个客户都与一个订单相关,但每个订单可以包含多个项目。另外,每个项目可以出现在多个订单。这就形成了一种多对多的关系。在这种情况下,您需要创建一个额外的表。我们把订购的东西称为"假设你"。这被称为连接表,它的唯一目的是通过提供每个值都可以连接到的地方来促进多对多的关系。标签:大数据| MySQL