导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

逻辑问题-外键约束

mohugomohu 2008-01-04 09:16:32
有一个关于协会的数据库,里面有会员表,主键是"ID".
有个活动表,里面有个"负责人ID",跟会员表里的"ID"有外键约束,这样就能从会员表查到是谁负责的活动.
可是由于这两个表有关联,所以删除不了跟活动表有关联的会员.
这不合逻辑啊,有人退出协会,自然要删除这个会员的信息,可是因为他负责有活动(跟活动表里的负责人ID有关联),所以删除不了,怎么解决呢?
...全文
44 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxmcxm 2008-01-05
如果想保留此人的活动记录,给会员表加个是否已退会的字段,如果不想保留活动记录,可设置级联删除,删除会员时同时删除与其相关的活动记录.

也可考虑将外鍵去掉,相关的规则检查在前台程序实现.
回复
晓风残月0110 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
建立一个触发器,作用是删除关联的表里的数据,都不是会员了,就不能是负责人
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告