为什么数据库不应该使用外键

一系列数据库设计决策的文章之一:当我们选择连续存储数据时,为什么外国课程不应该使用关系数据库是一个喜欢的解决方案。
原因不仅是因为数据库富有而稳定,还因为不同的社区提供了完整的支持。
上一篇文章讨论了MySQL自动主键的特征。
外国课程是参与关系表的课程。
通常,主键用作外锁,以确保满足约束。
图1 显示了关系数据库和外国锁的连接。
除了提供确保数据的一致性外,外国锁还确保参考的合法性。
在关系数据库中,必须存在参考。
SQL语句可用于添加外国锁定约束。
此SQL命令的前提是包含wutor_id的发布表。
通过绑定关键字推断,外国课程不是数据类型,而是不同表之间的绑定。
不使用外国课程的原因是像MySQL这样的关系数据库很难水平扩展,而非国家服务很容易扩展。
诸如外国课程之类的功能在数据库中导致其他工作并占据计算资源。
外国锁包括限制,级联,SetNull等。
添加外国锁时,您需要指定并限制默认值。
不同类型的外国锁会带来更多的成本,这就是为什么不使用外国课程的原因。
一致的测试是重要的外国功能之一。
在诸如MySQL之类的数据库中,使用默认类型的限制类型,并且在操作过程中测试了参考合法性。
作者提供的代码以检查GO语言的外国课程费用,结果表明,外国课程在绩效测试中的表现较弱。
模拟外国课程的功能相对简单,只需按照说明即可。
在事务中执行查询并修改命令。
添加或修改数据表数据相对简单,但是数据的删除与链接查询有关。
分层操作确保数据的一致性,但可能导致大规模删除问题。
数据库删除可以手动完成,但是成本更高,不如外部锁定功能好。
如果不一致,则可以在大量工作中完成大型任务,以减少对数据库的最大影响。
外国课程的使用需要数据库计算任务对系统舒适度的影响。
在高场景中,外国锁可能会限制服务的交易。
在一致的要求不高的复杂情况,或者在大型组中不使用外国锁可以帮助减轻数据库的负担。
在决定使用外国课程时,您需要评估数据库任务是否受系统的使用影响。
应该根据特定情况做出决定。
本文讨论了使用外国课程可能遇到的问题,并为读者提供了一些开放的问题。
如果您对文章的内容有疑问,或者想更多地了解设计决定背后的原因,请留言。
作者将及时回答问题,并选择正确的主题作为下一个内容。
提议阅读

主键和外键什么叫主键和外键

主键和外键是数据库中的两个重要概念。
1 主键主键是数据库表中的一个或一组字段,该字段唯一地标识了每个记录。
它具有以下特征:1 唯一性:主键的值必须在整个表中唯一,并且不允许重复值。
2 不空:主键字段无法接受空值。
3 稳定性:设置了主键后,它就无法随意更改。
如果主要钥匙值更改,则有必要创建新记录。
因此,主要密钥可以保证数据的一致性和完整性。
2 外键钥匙是用于在两个表之间建立关联的字段。
它作为表中的主要键存在,并作为另一表中的外键存在,以确保数据的一致性和完整性。
外国密钥的特征包括:1 参考完整性:外键约束确保从一个表到另一个表的数据引用是有效的,并且它们似乎没有有效的参考地址。
这保证了数据的完整性和逻辑一致性。
2 必须谨慎管理此依赖性,以避免数据不一致。
在数据库中,每个表具有一个或多个字段,作为主要密钥,可以唯一地标识表中的每个记录。
这些字段的值在整个表中都是唯一的,不能接受零值。
通过主键,我们可以快速识别表和查询中的特定记录,修改,删除数据和其他操作。
同时,主要密钥保证了数据的完整性和一致性,避免了重复的记录问题和无效值。
外键用于在不同表之间建立关联。
表中的一个字段像表中的主键一样存在,而作为另一表中的外键则存在,该表扮演着组合两个表的作用。
通过外国钥匙,我们可以实施数据瀑布操作,例如瀑布查询,瀑布更新等。
同时,外键还保证了数据的一致性和完整性,避免引用非valid数据和逻辑错误。
在数据库的设计中,合理设置和使用主键和外部密钥非常重要,并且是保证数据库数据的完整性和一致性的关键手段。

请问数据库中的主键和外键是什么意思?

在数据库中,主键是唯一标识数据记录的属性。
它可以是一个字段或由多个字段组成的复合键。
主键可确保表中的所有数据都是唯一的,并且不允许复制和零值,从而有助于维持数据完整性和准确性。
外键是用于建立和增强两个数据表之间的连接的属性。
指示如何将一个表中的记录连接到另一个表中的记录。
具体而言,外键通常设置在子表中,用于参考父表的主要键。
这样,外键可以确保数据相关性和一致性,防止数据错误不一致,并确保正确的参考和数据更新。
例如,假设我们有两个表: 一个是“客户”表,另一个是“订单”表。
客户表中的主要键是为客户提供的唯一标识符,并且订单表具有“客户ID”字段,该字段充当外国密钥,引用了客户表中的主要键。
这样,“订单”表中的每个顺序都与特定客户关联,以确保订单与客户之间的关系清晰准确。
总之,主键和外键在数据库设计中起着重要作用。
主要密钥确保数据的唯一性和完整性,而外国密钥通过建立表之间的关系来增加数据相关性和一致性。
了解这两个概念对于建立高效可靠的数据库系统很重要。

请问数据库里一个关系的外键一定要是另一个关系的主键吗?谢谢!

独特的高度肯定不能满足外国钥匙的定义。
外键用于维持两个表之间的参考完整性,通常,外国钥匙是指其他表的基本键。
但这不是绝对规则。
如果在参考表中被称为外键的热量是唯一的,则可以满足外键的要求。
这些设计始终可以在其他数据库架构要求上灵活,而无需将默认密钥用作门诊密钥。
例如,假定有一个包含客户信息的“订单”表。
在此示例中,客户ID可以用作外键,以参考“客户”表的唯一客户ID列。
客户ID不是“客户”表的默认键,但可以用作独特的外键。
此外,在某些情况下,使用唯一的密钥作为外键可以提供其他优势。
例如,如果您需要保证在多个字段组合中的唯一性,则可以使用包含多个字段的唯一键作为外键。
当与组合组合的桌子打交道时,这特别有用。
值得注意的是,在使用唯一键作为外键时,应特别关注数据的一致性和完整性。
检查参考列实际上是唯一的,并避免数据冗余和不一致。
同时,在设计数据库时,选择合理的外键类型可以提高数据模型的灵活性和适应性。
简而言之,在大多数情况下,外国键将指其他表的基本键,但是独特的密钥可以用作有效的外键。
关键是根据某些业务需求和数据库模式选择适当的外键类型。