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

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

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


database - 在SQL中处理一对一关系的最佳方法是什么?

比方说,我有阿尔法的事情,可能会或可能不会或与布拉沃或查理的事情有关。 这些是一对一的关系:没有Alpha会涉及多个Bravo。 没有布拉沃将涉及多个阿尔法。 我有几个目标: 一个容易学习和维护的系统。 数据完整性在我的数据库中执行。 一个与我的数据的真实世界,逻辑组织相匹配的模式。 我的编程中的类/对象很好地映射到数据库表(从Linq到SQL) 快速的读写操作 有效利用空间(很…


database - 什么是更好的数据库设计:更多的表或更多的列?

一位前同事坚持认为,每个数据库中包含更多列的表格越多,每个表格越少,表格越少。 例如,而不是具有名称,地址,城市,州,邮政等列的客户表,您将拥有名称表,地址表,城市表等。 他认为这种设计更有效,更灵活。 也许它更灵活,但我没有资格评论它的效率。 即使效率更高,我认为增加的复杂性可能会超过这些收益。 那么,对于包含更少列的更少列的更少列,是否有任何显着优势?…


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

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


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

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


SQL如何搜索多对多的关系

我有一个数据库与两个主要表格的notes和labels 。 他们有一个多对多的关系(类似于stackoverflow.com有标签问题)。 我想知道的是如何使用SQL搜索使用多个标签的笔记? 例如,如果我有三个标签“一”,“二”和“三”的笔记“测试”,我有第二个音符“test2”与标签“一”和“二”什么是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-多对多表主键

在阅读此问题中的评论后,出现此问题: 数据库设计 当你创建一个多对多的表时,你应该在两个外键列上创建一个复合主键,或者创建一个自动增量代理“ID”主键,并且将索引放在你的两个FK列上(也许可能一个独特的约束)? 每种情况下插入新记录/重新索引对性能有什么影响? 基本上这个: PartDevice---------- PartID(PK/FK) DeviceID(PK/FK) 与此…




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