主题:有关数据库表的关系视图设计问题
absolute8511
[专家分:0] 发布于 2008-03-31 22:18:00
请教一下
怎样设计数据库中表的关系视图以确保,表C的所以记录总数等于表A和表B的记录之和呢?
也就是C的表记录来源于A和B,并且完整包含A,B的记录。
ps:只需要确保ID类的某一列就可以了,比如A表中的A_Id列和B表中的B_Id列中的数据都能在C表
中的C_Id列中找到.
最后更新于:2008-03-31 22:29:00
回复列表 (共4个回复)
沙发
菜鸭 [专家分:5120] 发布于 2008-04-01 07:49:00
1
这个不需要关系图的
2
应该用触发器实现
3
实际上连触发器也不要,只要建个视图即可
比如
create view c
as
select 字段列表 from a
union all
select 字段列表 from b
板凳
absolute8511 [专家分:0] 发布于 2008-04-02 00:33:00
[quote]1
这个不需要关系图的
2
应该用触发器实现
3
实际上连触发器也不要,只要建个视图即可
比如
create view c
as
select 字段列表 from a
union all
select 字段列表 from b[/quote]
我想你误解我的意思了。
我不太懂视图,不过你这样是创建一个数据表吧。
我的要求是我往表A,B或C中添加一条记录时它会检查这个关系确保数据合法。
就像2个表的一对多关系图一样。
3 楼
菜鸭 [专家分:5120] 发布于 2008-04-03 08:10:00
确实误解了
但你的要求还是没看懂
如果要向A插入一条记录,他的ID必须在C中存在
但在C中这个ID是不可能存在的,因为C中的ID又必须在A中存在,而这个ID还没插入A呢
晕了
4 楼
absolute8511 [专家分:0] 发布于 2008-04-03 13:07:00
[quote]确实误解了
但你的要求还是没看懂
如果要向A插入一条记录,他的ID必须在C中存在
但在C中这个ID是不可能存在的,因为C中的ID又必须在A中存在,而这个ID还没插入A呢
晕了[/quote]
就是这个意思。
也就是说当你写插入表的sql语句时必须同时向相关表插入。只插入一个表会报错。
防止不知道规则的人乱插数据。
我来回复