急!怎样设计这些表呢?

cocn 2003-05-07 10:59:20
有两个表,结构很相似,主表虽然有两个,可每一张主表都有一大堆关联表,都是1:N的关系,关联表的主键为联合主键,其中之一就是主表的主键。另外,关联表其中一张存储的二进制字段。两张主表都存储一个二进制字段。我不知道是该设计成两套表,还是一套表?
两张主表的关系无非是从第一种状态转移到第二种状态,但有本质区别的,第一种状态可以修改,第二种状态就不行了。所以,第二套表需要经常进行查询、统计等等。当设计成两套表的时候,由第一种状态转成第二种需要将一系列相关记录(包括其他关联表)从第一套插入第二套表,再从第一个套中删除。我不知道若将主表设计成俩个,其他关联表是否可以设计成一个,将关联表的主键标识直接修改就可以了,从第一态的记录标识(由11打头的固定位数的整数)的,修改成第二态的记录标识(由12打头的固定位数的整数)。其中记录标识从主表种可以得到。我不知:
1、修改表的主键是否合适?虽然可以修改。这样可以提高一些效率,免得执行插入删除大字段的操作。
2、对系统性能有何影响?因为要时时用于查询、统计。若是一套表,则需要加一个判定条件,WHERE ID>12 000000 AND ID<13 000000,此其一;其二,一个表的数据量总比两个表的大,尤其,对二进制数据表来讲。但其他表没有二进制数据,是否大点也没有关系。
...全文
41 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunsys 2003-05-14
  • 打赏
  • 举报
回复
gz
netjam 2003-05-14
  • 打赏
  • 举报
回复
用一套表,主表中加个状态字段,从第一种状态转移到第二种状态时修改状态字段,判定条件,WHERE 状态字段 = ?
关于二进制字段,可以独立建一个二进制字段表,两个字段ID,二进制字段,在主表中记录二进制字段的ID,主表中可以有多个存放二进制字段的ID的字段
zhongjian 2003-05-09
  • 打赏
  • 举报
回复
各位朋友,小弟近日正在学习oracle9i,由于授课教师水平很戳,所以学习没有多大进展,本人想请各位朋友帮我找一些oracle的电子文档或幻灯片,以助我学习提高,小弟感激不尽.来信请发:
zhongjian_lee@yahoo.com
beckhambobo 2003-05-07
  • 打赏
  • 举报
回复
那两个主表不是负担更重吗?每次更新一表,二表也同时也要更新,性能上已减掉了。
若是二表只是得到统计查询结果,那又何必为他再次生成同样记录呢,只保存统计结果就是了.
BlueskyWide 2003-05-07
  • 打赏
  • 举报
回复
你说的第一套,第二套,
在Oracle中采用两个不同的用户不就完了吗?两用户众表及关系基本相同,但记录完全不同。
用触发器来实现:
第一套可随时向第二套追加记录(触发),同时删掉第一套中的当前记录。
cocn 2003-05-07
  • 打赏
  • 举报
回复
请细讲讲缘由。为什么从设计角度不可取
beckhambobo 2003-05-07
  • 打赏
  • 举报
回复
若数据量大,可以考虑快照,不需用到两个主表,从设计角度也不可取
若数据量小,用临时表吧。

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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