首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL Server中的一个关系的处理有关问题

2012-01-20 
SQL Server中的一个关系的处理问题.我建立了三个表:users,主要字段有idpartys,主要字段有id, useridjoins,

SQL Server中的一个关系的处理问题.
我建立了三个表:
users,主要字段有id
partys,主要字段有id, userid
joins,主要字段有id, partyid, userid

我想建立三个关系:
FK_joins_users,主键users.id, 外键joins.userid, 应用ON DELETE CASCADE ON UPDATE CASCADE
FK_joins_partys,主键partys.id, 外键joins.partyid, 应用ON DELETE CASCADE ON UPDATE CASCADE
FK_partys_users,主键users.id, 外键joins.userid, 应用ON DELETE CASCADE ON UPDATE CASCADE

这三个关系不能同时存在,只能拥有其中的两个,否则就会提示错误.
希望谁能给我一个理想的解决办法,或者告诉我下,应该建立哪两个关系更好些.

提示:表users有可能不会被删除记录,注意是有可能.所以还需要考虑有删除记录的情况.

[解决办法]
没有说清楚,第三个关系好象不错
[解决办法]
可以理解为
users 用户表
partys 活动表 userid是组织者
joins 参与者表

那么关系就很简单了,关系显然应该去掉 FK_partys_users

[解决办法]

SQL code
create table users(id int primary key) create table partys(id int primary key,userid int foreign key references users(id) ON DELETE CASCADE ON UPDATE CASCADE ) create table joins(id int primary key    ,partyid int foreign key references partys(id) ON DELETE CASCADE ON UPDATE CASCADE     ,userid int foreign key references users(id) --ON DELETE CASCADE ON UPDATE CASCADE        --应该去掉这个级联更新,否则会出错。将 FOREIGN KEY 约束 'FK__joins__userid__70DE8F2F' 引入表 'joins' 中将导致循环或多重级联路径。         --请指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其它 FOREIGN KEY 约束。)go drop table joins,partys,users 

热点排行