PHPmyadmin为何没有外键,
我是不喜欢建外键的,一般每个数据表只有一个主建即可。一般的系统程序也没问题啊?我未发现一定要用外吗?何原因?...
我是不喜欢建外键的,一般每个数据表只有一个主建即可。一般的系统程序也没问题啊?我未发现
一定要用外吗?何原因? 展开
一定要用外吗?何原因? 展开
4个回答
展开全部
简单说一下使用外键的好处
1、完整性约束,比如:
班级表中有字段 班级编号(id) , 班级名称(classname)
学生表中有字段 学生编号(id) , 学生姓名(name) 班级编号(classid)
学生表中的班级编号是外键,引用班级表的主键
假如:班级表中有数据: 1 软件一班
2 软件二班
3 软件三班
当用户向学生表中输入数据时,如果输入班级编号为4的话,在插入的时候就会出错,因为班级表中没有编号为4的班级
2、可以实现级联删除
还引用上面的例子,再添加连个表,一个为学生成绩表,一个为学生家庭信息表
当一个学生毕业了或者(因某种原因)退学了,那么数据库中就没有必要在存留这个学生的信息了,我们就可以删除此学生的相关信息了,可以删除此学生在学生表中的的基本信息,在成绩表中的成绩信息,在家庭信息表中的家庭信息,如果我们用SQL语句一条一条的删的话,要发送三条SQL语句,而如果在建表的时候,设立外键并且设置级联删除的话,当我们删除学生表中的信息的时候就会删除其他两个表中的关于此学生的信息
这只是两个很简单的使用,应该还有其他的好处,其实当一个功能设计出来的时候肯定有他的用处,可能我们用的时候不知道而已
还有就是在phpMyadmin中暂时还没有直接设置外键的功能,可以通过命令行的方式来修改,格式如下
alter table 表名
add foreign key 字段 references 表名(字段)
1、完整性约束,比如:
班级表中有字段 班级编号(id) , 班级名称(classname)
学生表中有字段 学生编号(id) , 学生姓名(name) 班级编号(classid)
学生表中的班级编号是外键,引用班级表的主键
假如:班级表中有数据: 1 软件一班
2 软件二班
3 软件三班
当用户向学生表中输入数据时,如果输入班级编号为4的话,在插入的时候就会出错,因为班级表中没有编号为4的班级
2、可以实现级联删除
还引用上面的例子,再添加连个表,一个为学生成绩表,一个为学生家庭信息表
当一个学生毕业了或者(因某种原因)退学了,那么数据库中就没有必要在存留这个学生的信息了,我们就可以删除此学生的相关信息了,可以删除此学生在学生表中的的基本信息,在成绩表中的成绩信息,在家庭信息表中的家庭信息,如果我们用SQL语句一条一条的删的话,要发送三条SQL语句,而如果在建表的时候,设立外键并且设置级联删除的话,当我们删除学生表中的信息的时候就会删除其他两个表中的关于此学生的信息
这只是两个很简单的使用,应该还有其他的好处,其实当一个功能设计出来的时候肯定有他的用处,可能我们用的时候不知道而已
还有就是在phpMyadmin中暂时还没有直接设置外键的功能,可以通过命令行的方式来修改,格式如下
alter table 表名
add foreign key 字段 references 表名(字段)
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
展开全部
个人喜好而已,没有什么对错.
数据量特别大的时候才会有差异.
数据量特别大的时候才会有差异.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1个表1亿条数据,另外一个表也有200万条数据,这种情况下,如果不建立外键,找对应关系能把机器跑死。这时候外键的重要性就体现出来了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不同的表关联起来,需要用到外键的。如:A表有id,name字段,B表有id,age字段,现在要取name是xxx的用户的信息。select * from A left join B on A.id = B.id where A.name = 'xxx'
追问
就是不建外,也是可以实现此连接的。
追答
这个id就是他们的外键
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询