这样的情况下,关联表的数据一致性怎么保持?

xuluo77421 2010-01-17 12:38:39
现在我有2个表:
库存表:字段有id,货主单位名称,货主单位id等;
货主单位表:字段有id,名称等。
现在每次我修改货主单位表的名称时,希望跟它关联的所有表的货主单位都同步,
因为操作库存表的时候经常要用到货主单位名称,所以我直接放库存表的,
这个问题大家一般是怎样解决的?
...全文
140 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuluo77421 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 crazylaa 的回复:]
不过楼主如果数据量不是特别大,建议你还是不要这么的去冗余这个单位名称。这个单位名称只是很简单的一个映射,查询起来没你想象的麻烦,查询结果采用分页以后,也不会有你想象的那么影响效率。

个人意见,仅供参考。
[/Quote]
谢谢楼上的回答,很详细,主要是我们的框架用的分页不能支持2个表关联,
而且要维护的类似字段很多,如果每次都查的话很麻烦
不过这类字段应该不会经常修改,所以做成trigger是挺不错的
xuluo77421 2010-01-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhangjihao 的回复:]
这是你设计有问题,

库存表:字段有id,货主单位名称,货主单位id等;

货主单位名称就不应该出现在库存表中,经常要用到货主单位名称时,就是连接查询。
如果不按数据库范式设计,就另想办法吧。
[/Quote]
问题是不放库存表的话,那我列表页面要显示货主单位的话查起来很麻烦
howsun_zh 2010-01-17
  • 打赏
  • 举报
回复
这是你设计有问题,

库存表:字段有id,货主单位名称,货主单位id等;

货主单位名称就不应该出现在库存表中,经常要用到货主单位名称时,就是连接查询。
如果不按数据库范式设计,就另想办法吧。
crazylaa 2010-01-17
  • 打赏
  • 举报
回复
不过楼主如果数据量不是特别大,建议你还是不要这么的去冗余这个单位名称。这个单位名称只是很简单的一个映射,查询起来没你想象的麻烦,查询结果采用分页以后,也不会有你想象的那么影响效率。

个人意见,仅供参考。
crazylaa 2010-01-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xuluo77421 的回复:]
引用 1 楼 zhangjihao 的回复:
这是你设计有问题,

库存表:字段有id,货主单位名称,货主单位id等;

货主单位名称就不应该出现在库存表中,经常要用到货主单位名称时,就是连接查询。
如果不按数据库范式设计,就另想办法吧。

问题是不放库存表的话,那我列表页面要显示货主单位的话查起来很麻烦
[/Quote]
用数据库实现,在你的货主单位表上加个trigger,当修改的时候,就按照单位ID去修改对应的库存表里面的单位名称。自动给你保证事务。
用代码实现更麻烦,还得保证事务。
trigger简单示例:
create or replace trigger tgname
after update of 名称 on 货主单位表
for each row
begin
if :new.名称 <> :old.名称 then
update 库存表 set 货主单位名称=:new.名称 where 货主单位id=:new.id;
end if;
end;

这个是oracle的,你针对你的数据库类型相应修改下即可。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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