怎么合理设计数据库?

jerrycool 2006-06-06 12:10:11
最近在做一个网站,商品有分大类表,小类表,有论坛,帖子表和回复表是分开的.
我是这样做的:
商品表中,小类字段是小类表ID的FK.这里可以级联更新和删除
小类表中,所属大类字段是大类表ID的FK.这里可以级联更新和删除
帖子表里的UserID是会员表UserID的FK.这里可以级联更新和删除
回复表里的UserID是会员表UserID的FK.但是这里不可以级联更新和删除,提示不能这样做,具体的错误我不记得了.好象是级联多了,(路径)重复了吧...

后来感觉FK的级联不好用,全部改用触发器来实现删除,郁闷的是,刚刚进行删除的时候,出错了:
DELETE 语句与 COLUMN REFERENCE 约束 'FK_SubKind_G_Kind_G' 冲突。该冲突发生于数据库 '[TableName]',表 'GoodsSubKind', column 'GK_ID'。语句已终止。

在此请教各位了...有什么方法最合适?
有没有更合适的设计方法,最好用级联,但不知道怎么做啊.郁闷.
...全文
185 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jerrycool 2006-06-06
  • 打赏
  • 举报
回复
关键现在是一个表的主键作了多个表外键呀...

高手指点呀....
昵称被占用了 2006-06-06
  • 打赏
  • 举报
回复
级联不好用,除非你一个表的主键只是作为另一个表的外键

jerrycool 2006-06-06
  • 打赏
  • 举报
回复
去掉了级联删除也不行,多个外键(比如论坛用户,帖子,回复)根本建立不了外键关系啊

不知道这样做行不行喔
能用级联尽量用,不能用就用触发器代替

不知道各位是怎么做的?
昵称被占用了 2006-06-06
  • 打赏
  • 举报
回复
理想的方法还是用级联,去掉多个外键的一部分级联删除
昵称被占用了 2006-06-06
  • 打赏
  • 举报
回复
用触发器必须把外键约束去掉

jerrycool 2006-06-06
  • 打赏
  • 举报
回复
但触发器提示错误呀....

DELETE 语句与 COLUMN REFERENCE 约束 'FK_SubKind_G_Kind_G' 冲突。该冲突发生于数据库 '[TableName]',表 'GoodsSubKind', column 'GK_ID'。语句已终止。
itblog 2006-06-06
  • 打赏
  • 举报
回复
用触发器吧~

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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