Questions tagged «many-to-many»

1
为具有多个多对多关系的视频游戏业务领域设计数据库
我对数据库设计比较陌生,因此决定创建自己的假设数据库进行实践。但是,我难以建模和规范化它,因为我认为存在许多多对多(M:N)关系。 一般方案说明 该数据库旨在保留有关在Zelda系列上工作过的各种人员的数据。我想跟踪的控制台(S) ,一个游戏可以玩上,员工是曾在部分游戏的发展,乔布斯的员工有(很多员工在不同的工作职位在多个游戏等) 商业规则 多个员工可以从事多个游戏。 多个游戏可以在同一控制台上。 多个控制台可以是同一游戏的平台。 多个雇员可以具有相同的工作。 一个雇员可以有多个工作。 一个游戏可以有多个雇员。 一个游戏可以有多种类型的乔布斯在它的发展 多个游戏可以附加相同类型的作业。 一个控制台可以有多个人做这个工作。 一个人可以在多个控制台上工作。 属性名称和样本值 员工姓名,可以分成第一和最后(例如“约翰”和“李四”) 游戏标题(例如“时间之笛”) 职务(例如“关卡设计”,“导演”,“沉着”,“关卡设计师”,“程序员”,“本地化”等)。 控制台名称(例如“ Game Boy Advance”) 问题 到目前为止,无论我设计什么,似乎到处都存在感兴趣的实体类型之间的数据冗余和M:N关系。但是,我认为数据库设计人员必须始终遇到这种问题,因此必须找到解决方案。 注意:我很容易找到填充表的数据,问题是将其组织到具有标准化表格的数据库中。

3
对每个音乐艺术家都是乐队或独奏演员的场景进行建模
我必须为涉及音乐艺术家描绘的业务环境设计一个实体关系图(ERD),下面将详细介绍。 方案说明 一个艺术家有一个名称,且必须要么一组 或一个独奏演员(但不能同时)。 甲组是由一个或多个独奏表演者,并具有会员数(其应该从数计算独奏表演构成组)。 一个独奏演员可能是一个会员众多的群体或无的集团,并可以播放一个或多个仪器。 题 如何构建一个ERD来代表这种情况?我对它的“或”部分感到困惑。

3
如何提示SQL Server中的多对多联接?
我有3个“大”表,它们连接在一对列(均为int)上。 Table1拥有约2亿行 Table2拥有约150万行 Table3拥有约600万行 每个表都有一个聚集索引Key1,Key2以及再得一列。Key1具有低基数并且非常偏斜。WHERE子句中始终引用它。条款中Key2从未提及WHERE。每个联接都是多对多的。 问题在于基数估计。每个连接的输出估计值变小而不是变大。当实际结果达到数百万时,最终得出的结果估计只有几百个。 我有什么办法让行政长官提示做出更好的估计? SELECT 1 FROM Table1 t1 JOIN Table2 t2 ON t1.Key1 = t2.Key1 AND t1.Key2 = t2.Key2 JOIN Table3 t3 ON t1.Key1 = t3.Key1 AND t1.Key2 = t3.Key2 WHERE t1.Key1 = 1; 我尝试过的解决方案: 在创建多列统计Key1,Key2 创建大量已过滤的统计信息Key1(这很有帮助,但是我最终在数据库中获得了数千个用户创建的统计信息。) 掩盖的执行计划(抱歉掩盖不好) 就我而言,结果有900万行。新的CE估计有180行;旧版CE估计有6100行。 这是一个可重现的示例: DROP TABLE IF EXISTS #Table1, #Table2, …

5
互斥的多对多关系
我有一个表containers,可以有几个表一个多一对多的关系,让我们说那些是plants,animals和bacteria。每个容器可以包含任意数量的植物,动物或细菌,并且每个植物,动物或细菌可以位于任意数量的容器中。 到目前为止,这非常简单,但是我遇到的问题是每个容器应仅包含相同类型的元素。例如包含植物和动物的混合容器应成为数据库中的约束违例。 我的原始模式如下: containers ---------- id ... ... containers_plants ----------------- container_id plant_id containers_animals ------------------ container_id animal_id containers_bacteria ------------------- container_id bacterium_id 但是使用这种模式,我无法提出如何实现容器应该是同质的约束。 有没有一种方法可以使用参照完整性来实现这一点,并确保在数据库级别上容器是同质的? 我为此使用Postgres 9.6。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.