为什么必须在数据库中明确指定外键和引用?

丹尼斯·雅科文科(Denis Yakovenko)

您能否解释一下为什么创建表时必须指定那些外键?我的意思是,我已经创建了两个表(在ER图上)具有一对多关系,但是我没有指定外键和引用。我可以使用where子句连接表,甚至执行联接等。

尽管我已经阅读了一些有关此方面的知识,但可能没有得到一些基本概念。我猜想这与数据一致性或参照完整性有关。

那么,您能为我解释这些概念吗?如果我有8-10个具有一对多关系的表,并且可以确保将数据正确插入数据库中,那么这些引用和外键是否是绝对必需的?

戈登·利诺夫

它不是必需的指定外键关系。这只是一个好主意。

指定关系时,数据库将确保关系完整性。也就是说,它确保外键列中的值是合法值。

此外,在cascade更新或删除值时,外键上选项有很大帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我们必须在模型和迁移方面设置数据库的关系?阿多尼斯JS

Firebase 数据库:为什么我查询的数据快照中的键/引用引用其父级?

如何决定必须在数据库表中建立索引的字段

外键引用数据库中的多个列

为什么CMS数据库不使用外键?

为什么我必须在数据加载之前点击?

为什么有人不使用MySQL数据库中的外键?

数据库中的空外键-但是为什么呢?

在数据库中找到引用某个主键的所有外键约束

为什么数据库名称和版本必须是静态的?

为什么将盐和哈希密码一起存储在数据库中

为什么将文件名和上传路径存储在数据库中?

为什么要在数据库中创建视图?

如果使用@OneToMany批注,是否必须在数据库中本地定义一对多关系

为什么必须在C中链接数学库?

数据库中的外键

数据库中的外键

尝试访问和在数据库中设置外键时出现问题

Hibernate 不会在数据库中为单向多对一创建外键

gorm没有在数据库模式中建立外键关系商店

sqlalchemy:创建关系,但在数据库中没有外键约束?

Laravel使用外键将动态输入保存在数据库中

Sequelize 多对多关系不会作为外键保存在数据库中

通过php在数据库中动态添加外键

Hibernate Spring-@OneToMany-外键未存储在数据库中

使用外键和主键理解数据库表引用

为什么必须在Node.js中明确要求一些核心模块?

如何在数据库中保存带有外键引用的字符串属性

是否可以在Laravel中的其他数据库中引用外键?