问自己的一个问题:当数据库表格结构发生变化时,数据库文件应作何变动(2009-10-12)

这个问题其实可以这样表述

如果有一个表示员工信息的表格

create table namelist(

id INT NOT NULL,

name CHAR(24),

age INT,

birthplace CHAR(128),

PRIMARY KEY (id)

)

表格中已存在大量数据,

如果光是执行 insert into,update,delete这些脚本去添加,更新,或删除数据,

可使用基本的文件读写功能,将文件指针移到文件相应位置,并在该处添加,更新或删除数据,

可是当需要修改数据表的结构时,

比如象 alter table namelist change name name CHAR(64)

又该如何处理文件中已存在的数据,才能不至于给以后查找或更新数据造成麻烦?

 

 

 

答(2009-10-18):

1.首先需要明白一点能修改数据库表格结构的人基本上都是管理员,由于管理员操作数据库的时间将会远远小于终端用户所用的时间,

所以如果可以让终端用户减少可观的访问时间,而不得不让管理员多等待些时间是值得的。

 

 

2.当表格相同项的长度是固定的时候

简单的处理一种方法是只记录开始每条记录的头地址,所以当表结构发生变化时,不得不对数据库中的每条数据进行修改,

复杂一点的处理是索引文件记录每条记录的每项的地址,所以当表格发生变化时,可相应作些细小的变动,

 

 

3.当表格相同项的长度是变化时

  我看只能是建立一个为每条记录的每一项建立索引文件,那样当表格结构发生变化时,原有数据可维持最小的修改。

 

 

 

 

 

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值