这个问题其实可以这样表述
如果有一个表示员工信息的表格
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.当表格相同项的长度是变化时
我看只能是建立一个为每条记录的每一项建立索引文件,那样当表格结构发生变化时,原有数据可维持最小的修改。