社区
MS-SQL Server
帖子详情
逻辑问题-外键约束
mohugomohu
2008-01-04 09:16:32
有一个关于协会的数据库,里面有会员表,主键是"ID".
有个活动表,里面有个"负责人ID",跟会员表里的"ID"有外键约束,这样就能从会员表查到是谁负责的活动.
可是由于这两个表有关联,所以删除不了跟活动表有关联的会员.
这不合逻辑啊,有人退出协会,自然要删除这个会员的信息,可是因为他负责有活动(跟活动表里的负责人ID有关联),所以删除不了,怎么解决呢?
...全文
133
8
打赏
收藏
逻辑问题-外键约束
有一个关于协会的数据库,里面有会员表,主键是"ID". 有个活动表,里面有个"负责人ID",跟会员表里的"ID"有外键约束,这样就能从会员表查到是谁负责的活动. 可是由于这两个表有关联,所以删除不了跟活动表有关联的会员. 这不合逻辑啊,有人退出协会,自然要删除这个会员的信息,可是因为他负责有活动(跟活动表里的负责人ID有关联),所以删除不了,怎么解决呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cxmcxm
2008-01-05
打赏
举报
回复
如果想保留此人的活动记录,给会员表加个是否已退会的字段,如果不想保留活动记录,可设置级联删除,删除会员时同时删除与其相关的活动记录.
也可考虑将外鍵去掉,相关的规则检查在前台程序实现.
火星求索
2008-01-05
打赏
举报
回复
加一个标识字段,
由于数据的重要性,在实际项目中也基本上没有真删的,只是给一个标识至为0,1
删除时更新字段就可以了,如楼主所遇真删会有很多问题
Bytexu
2008-01-05
打赏
举报
回复
不建议直接删除用户表,这样会导致很多关于该用户的信息都丢失了,这会导致很多问题,例如:日后如果这个活动如了问题也不知道该找谁。标准的做法是添加一个字段,用于表示用户的状态。
wxxloveu
2008-01-05
打赏
举报
回复
数据备份不就好了,或者再建个表把删除的记录记下来
hui_hui_2007
2008-01-05
打赏
举报
回复
其实级联删除,在实际用总感觉有点不放心,因为历史数据有时很重要,宁可有,不可无呀.
lxzm1001
2008-01-04
打赏
举报
回复
给他多加一个字段做为删除的标记
OracleRoob
2008-01-04
打赏
举报
回复
设置级联删除
wxxloveu
2008-01-04
打赏
举报
回复
建立一个触发器,作用是删除关联的表里的数据,都不是会员了,就不能是负责人
所谓的数据库物理外键与
逻辑
外键
所谓的数据库物理外键与
逻辑
外键 当看到物理外键的时候,第一反应是有物理外键那一定有
逻辑
外键,那我熟悉的外键是什么? 物理外键指的是使用foreign key 作为外键关联另一张的字段的连接方法,而且限定了引擎为InnoDB,而
逻辑
外键,又叫做事实外键,是因为存在语法上的
逻辑
关联而产生的外键,需要有连接关键词inner join 或者left join 等等和连接部分,也就是on后面的部分,如果需要对应的设置,也可以加上set等语句。 看到的一网友的评论,引起我的共鸣: SQL FOREIGN KEY 约束
如何删除带外键的字段
先在从表删除主表的id(如user_id),然后在删除主表的id。
外键查询_为什么大多数互联网公司不用
外键约束
是否使用
外键约束
【强制】不得使用外键与级联,一切外键概念必须在应用层解决.-《阿里Java规范》首先外键(Foreign Key)是什么东西使用方案假设有一个score表 id是自增id,score是分数,student_id是学号。另一个student表,id是自增id,name是名字,student_id是学号。那么设计这个的时候就希望有一个关联关系,让score的student_id指向st...
为什么阿里巴巴禁用数据库
外键约束
?从规范到实战全解析
阿里巴巴等大型互联网公司禁用数据库
外键约束
,转向应用层实现数据完整性管理。外键虽然能保证数据一致性,但在高并发系统中存在四大
问题
:1)测试数据构造复杂;2)性能损耗大;3)并发锁机制易导致阻塞;4)级联删除风险高。此外,外键还阻碍系统解耦和数据迁移,不利于分布式架构演进。解决方案是在应用层通过代码校验、分布式事务等手段替代外键功能,实现更灵活可控的数据一致性管理。这一实践已成为互联网大厂的技术共识,符合分布式系统架构的发展趋势。
JavaWeb——MySQL-多表设计(2/5):一对多-外键(语法解析、图形化工具添加外键实操、物理外键局限剖析、
逻辑
外键优势与选择)
开发中依业务规则编码实现数据一致性维护,如业务
逻辑
层添加部门删除校验,确保无员工关联方可删除部门,提升系统性能与扩展性,适配复杂业务架构与分布式环境,为大型项目数据管理提供灵活高效方案,增强系统应变能力与维护便利性。部门与员工表结构虽已创建并插入测试数据,但在删除部门表中学工部数据时,员工表中学工部员工记录仍留存,致数据完整性与一致性受损。此方式灵活,可按需为已有表添加外键,增强数据关联管理,如项目拓展或表结构调整时,为新表或现有表建立
外键约束
,完善数据关系维护机制。删除部门数据测试
外键约束
功能,
MS-SQL Server
34,876
社区成员
254,635
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章