我真的需要使用外键吗?

14 浏览
0 Comments

我真的需要使用外键吗?

我是否应该在每个相关表中使用外键,为什么?

0
0 Comments

是否真的应该使用外键?

外键的问题出现的原因:

- "所有相关的表"并不总是清晰的,所以这不是一个明显的情况。可能存在具有共同列但可能永远不会相互查看的表。

- 然而,它非常方便,可以防止绕过主要防御措施并输入不易追踪的数据。

- 如果您已经设置了适当的索引,并且良好的应用程序足够过滤输入,那么它们不会帮助使查询更高效。但是错误是会发生的,它们是一道廉价的防线。

- 如果您刚刚开始设计数据库,那么不需要花费很多时间来担心和详细调整外键,一旦您建立了基本的父/子关系。

解决方法:

- 可以参考以下链接:What's wrong with foreign keys?

0
0 Comments

应该真的使用外键吗?

使用外键是关系型数据库的一个基础概念(如果不是唯一的)。在需要的地方,你当然应该使用外键。因为这有助于:

1.确保数据的验证和完整性

2.节省大量额外的空间

第一个意味着,与其手动添加一个将在其他记录中重复出现的值到一个字段中,你可以从相关的主键表中选择。如果你试图输入在其他表中不存在的主键,你将被拒绝(尽管在某些数据库中,你可以调整此行为)。

第二个意味着,你不必每次都写出"美利坚合众国",这比只写出"美利坚合众国"的ID要占用更多的空间。

对于数据库设计来说,外键是一个非常重要的概念。它确保了数据的一致性和完整性,避免了数据冗余和不一致。在现实世界中,我们经常需要处理具有关联关系的数据。使用外键可以更好地管理这些关联关系,提高数据库的性能和可维护性。

然而,是否真的应该使用外键还取决于具体的情况。有时候,在某些特定的场景下,使用外键可能会带来一些额外的开销,比如查询时的性能下降。此外,有时候应用程序可能需要维护一些复杂的关联关系,这可能导致使用外键变得复杂和困难。

在这种情况下,我们可以考虑使用其他方法来保证数据的一致性和完整性,比如使用触发器、存储过程或应用程序级别的验证逻辑。这样可以避免使用外键带来的一些问题,并在特定情况下提高性能和灵活性。

使用外键是一种良好的数据库设计实践,可以确保数据的一致性和完整性。然而,在具体情况下,我们需要权衡使用外键可能带来的开销和困难,并考虑使用其他方法来满足需求。

0
0 Comments

我应该真的使用外键吗?

在数据库设计中,使用外键是一个非常重要的问题。下面我将从问题的出现原因以及解决方法两个方面进行整理。

问题的出现原因:

1. 性能问题:根据你所使用的数据库系统不同,使用外键可以提高数据库的性能。

2. 数据完整性问题:外键可以确保数据的完整性,例如可以帮助避免孤立记录等。

3. 数据库结构文档化问题:外键是数据库结构的一种明确方式,可以被用于可视化工具、代码生成等方面。

解决方法:

在数据库设计过程中,应该充分考虑使用外键的好处,并根据具体情况进行合理的使用。下面是一些使用外键的示例代码:

CREATE TABLE Orders (

OrderID int PRIMARY KEY,

CustomerID int FOREIGN KEY REFERENCES Customers(CustomerID),

OrderDate datetime

);

通过使用外键,我们能够更好地管理数据库的性能、数据完整性和结构文档化等问题,从而提高数据库的可靠性和可维护性。因此,我建议在数据库设计中,应该真的使用外键。

0