database - 多对多表中的一个或两个主键?

database - 多对多表中的一个或两个主键?

我有我的数据库中具有多对多关系,这是表中的每个主表的主键的外键表示连接表中的以下表: 小部件:WidgetID(PK),标题,价格 用户:UserID(PK),名字,姓氏 假设每个User-Widget组合都是唯一的。 我可以看到如何构建定义数据关系的连接表的两个选项: UserWidgets1:UserWidgetID(PK),WidgetID(FK),UserID(FK) Us…


sql - 你如何处理关系数据库中的m..n关系?

我们来看一个例子-书籍。 一本书可以有1..n位作者。 作者可以有1..m书。 代表一本书的所有作者的好方法是什么? 我想出了一个创建Books表和Authors表的建议。 Authors表具有作者姓名的主AuthorID键。 Books表具有关于书籍的主要书籍ID和元数据(标题,出版日期等)。 但是,需要有一种方法将书籍与作者和作者联系起来。 这是问题所在。 假设我们有三本鲍勃的书…


sql server - 缺少跨数据库外键引用的SQL设计

无论好坏,我们都有一个依赖多个数据库的解决方案,这些数据库都引用了一个通用的管理数据库。 数据库作为模块的一部分出货,并不是所有模块都是安装所必需的(可能为什么我们首先有多个数据库)。 管理数据库是必需的,但是...所以它将永远在那里。 我想给这个混沌带来一些参照的完整性和秩序,但是由于SQL服务器不能做跨数据库外键而受到阻碍。 数据库中没有大量的流失,但信息将被(非)技术用户插入/更新。…


database design - 何时在数据库表之间使用1对1关系?

数据库设计问题:您何时决定使用1对1关系表? 我看到的其中一个地方是,例如,当你有一个User和UserProfile表时,人们会拆分它们而不是将所有列放在User表中。 从技术上讲,您可以将所有列放在一个表中,因为它们的关系是1对1。 我知道有人说对于UserProfile表,随着时间的推移你需要改变表来添加更多列,但我真的不认为这是拆分表的一个强有力的理由。 所以,如果我要设计一个Us…


sql - 多对多的关系:在列中使用关联表或分隔值?

更新2009.04.24 我的问题的主要观点不是开发人员的困惑,应该怎么做。 重点是了解何时分隔值是正确的解决方案。 我已经看到商业产品数据库中使用的分隔数据(Ektron lol)。 SQL Server甚至有一个XML数据类型,所以可以用作与分隔字段相同的用途。/结束更新 我正在设计的应用程序有一些多对多的关系。 在过去,我经常使用关联表来在数据库中表示这些表。 这给开发商造…


sql - 多对多关系设计-交叉表设计

我想知道对于多对多关系的交叉表有什么更好的设计。 我正在考虑的两种方法是: CREATE TABLE SomeIntersection(IntersectionId UNIQUEIDENTIFIER PRIMARY KEY, TableAId UNIQUEIDENTIFIER REFERENCES TableA NOT NULL, TableBId UNIQ…


使用SQL Server创建一对多关系

如何使用SQL Server创建一对多关系?…


sql server - 数据库设计:一个巨大的表还是单独的表?

目前我正在设计一个供我们公司使用的数据库。 我们正在使用SQL Server 2008.该数据库将保存从多个客户收集的数据。 该数据库的目标是获得多个客户的总基准数。 最近,我特别担心一张桌子会变得非常大。 每个客户拥有大约20.000.000行数据,数据库中很快就会有30个客户(如果不是更多)。 将在此表上进行大量查询。 我已经注意到性能问题和暂时被锁定的用户。 我的问题是,我们将来能够处…



tsql - 完全匹配两个多对多表的记录集

我有用户,职位和许可证 。 关系是: 用户可能有许多许可证 职位可能需要许多许可证 因此,我可以轻松获得每个职位的许可证要求以及每个用户的有效许可证。 但是我想知道匹配这两套的最好方法是什么? 随着逻辑的进行,用户至少需要某个位置所需的许可证。 可能有更多,但剩下的不相关。 我想获得用户和合格职位的结果。 PersonID PositionID 1 1…


database - 数据库表的最佳设计是什么,可以由两个不同的资源拥有,因此需要两个不同的外键?

我的应用程序具有可以属于组的用户的通知设置。 组管理员可以定义整个组的设置,以便任何用户执行操作时通知管理员。 管理员还可以为单个用户定义设置,这将覆盖组设置。 现在我有一个数据库的列: group_id, action1, action2, action3,... 这些操作是布尔值,用于确定当用户在其组中的用户执行操作时是否通知管理员。 我可以创建一个由User模型拥有的单独表格,而不是G…




数据库多对多中间表 mysql一对多设计 sql多对多 数据库外键 数据库一对多查询 数据库关系表 数据库中间表 mysql表一对多 外键约束 一对多bbc