数据库该不该用外键

数据库该不该用外键,第1张

要你数据设计合理,使用合法,可以不需要外键

1

外键是将b表的某列和a表的主键连接起来。

a的主键是id,那么就是它了。

2

select

a.username,a.userpwd,b.gold

from

a,b

where

a.id=b.gold

3

同时更新或者 *** 作两个表(比如通过a的值来检索b的值)?

通过a的值来检索b的值

就如上面所说一个sql语句就可以了。

同时更新的话你可以用触发器。也可以用存储过程。

在存储过程中直接对两个表进行 *** 作就能达到你的目的。

你的问题还很笼统。如果不明白最好就一个具体问题来提问。

不建议建立,使用外键有利于维持数据完整性和一致性,但是对于开发来说是非常不利的。

每次做DELETE 或者UPDATE都必须考虑外键约束,会导致开发的时候很痛苦,而且需要更为复杂的错误捕获机制。

做数据处理时会受到很多的束缚,有些地方本来就可以允许有部分冗余,但是由于设计了外键约束,只能放弃。

出现BUG的时候追踪很麻烦。

数据库的三个层次:

物理数据层是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令 *** 作处理的位串、字符和字组成。

概念数据层是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。

用户数据层是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。

当然有用了.

有两个表.

表1:(存放的是用户资料)

包含3列:id,姓名,性别

表2:(存放的是的成绩)

包含3列:userid,课程,成绩.

外键关系:

表2.userid==表1.id

当你在表2中插入成绩时,数据库会自动检查用户是否在表1中存在.

如果外键有级联删除时删除表1的用户时,会同时自动删除表2的相关数据.


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6700321.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存