什么情况下该用外键约束,这种情况该不该用?

comszsoft 2006-06-06 11:05:38
有3个表:
1.role
列:
roleId int
roleName varchar(50)

2.user
userId int
userName varchar(50)

3.role_user
role_user_id
roleId
userId

role_user 表中 roleId,userId 列分别对应 role 和 user 表中的 roleId,userId 列,问: 他们该不该用外键约束,用了有什么好处。
我以前用过约束,但是如果要删除 role,user表的数据就会提示出错,是外键约束起的作用,大家说说自己的看法,你们都在什么情况下使用外键的阿。谢谢各位。




...全文
360 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
LiveAsUWant 2006-06-06
  • 打赏
  • 举报
回复
应该使用外键 我们一般使用事务 处理
tippointGmail 2006-06-06
  • 打赏
  • 举报
回复
我个人认为你的表如果这样设计,就存在逻辑约束关系,那在删除的时候或者用触发器,或者用事务处理方式对数据进行处理
新鲜鱼排 2006-06-06
  • 打赏
  • 举报
回复
如果主表数据被处理,子表对应数据没有存在必要情况下就需要建立关联。
使得更新删除变得容易。
comszsoft 2006-06-06
  • 打赏
  • 举报
回复
谢谢楼上两位。
itblog 2006-06-06
  • 打赏
  • 举报
回复
另外还可以使用触发器来实现~
OracleRoob 2006-06-06
  • 打赏
  • 举报
回复
使用外键,并且设置级联删除和更新。

如:删除用户后,通过级联关系自动删除role_user表中此用户对应的记录。
comszsoft 2006-06-06
  • 打赏
  • 举报
回复
多谢各位,我想建立级联可能是最方便的。给分。

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧