最近,为公司开发一个项目资料管理系统设计了MSSQL库。程序已经开发差不多时,公司信息部审查,觉得我数据库规划有问题,问问各位专家,我这样的项目这样规划合理吗? 数据库规划如下: 信息系统资料管理模块主要实现以下功能: 用户把跟项目工程有关的文档资料(word,xls,cad,pdf等)在系统中集中管理。系统本身有一个本地数据库记录文件位置,信息等。当然物理文件只保存在系统某个文件夹中。当用户登陆网络时,把所有的本地文件,备份到网络服务器的MSSQL服务器中,此时文件以流形式,在本地压缩,然后存入数据库的IMG字段中。 因为流文件直接存入数据库IMG字段,对系统的性能会大大损耗,故在设计数据库时,伤透了脑筋。 整个系统一般会有400个用户,我把数据库设计如下: 除了一些基本的数据信息设计了近十来个表外,我为每个用户都设立了二个表,也就是说,每增一个用户会动态生成二个表。现在数据库中已经导入350个用户,系统已经有800个表了。 为每个用户都各自设表:因为考虑到用户在数据库中存取的是大容量的流文件。当用户更新大容量新流数据时,锁定表的时间片会较长,如果十来个用户一起更新数据,,那等待的时间会较长!一个用户各自更新各自表,那只要服务器性能跟上,就不存在这问题。 因为要把文件信息跟存大容量流文件字段分开,所以每个用户就有二个表,一个表只存文件信息,平常用户只做查询,调用文件信息表就够,当用户要打开一个文件时,才调用一个存流表的一个记录,这样提高了数据库的查询性能。 目前,系统进入测试阶段,数据库达到450M时,我用把400M,880个文档,更新到数据库中,用了4分钟就完成,性能还不错,当然到数据库达到T级时不知性能会怎么样,400个用户都用起来时,会怎么样? 最近公司信息中心领导提出:每增一个用户会生成二个表的做法很不合理。 请问大家:我这样的系统设计这样的表,合理吗? MSSQL2000表数量达到多少时,会降底性能!多少表数量是一个合理范围?
这个系统,每个用户的表结构是一样的,我只是设想每个用户只是调用自己的表,,系统每个用户都会有1-2G的文档更新到数据库中,用户数量大概不会超过500个,也就是说充其量,数据库中表数量不会超过1200个,如果把所有用户合并到二个表中,那记录数就会超长,表速度会大大降底?
数据库结构一点也不复杂,每个用户有自己的表,表名是以用户帐号命名的,现在只考虑有没有必要把所有用户表合并,大家只对一个表进行操作.合并表,跟用户调用自己表,从表记录数超长,跟表数量达到1200个的取舍,大家觉得那个合理(要考虑到表中存取的是大容量流文件)