最近在帮学校做一个问卷调查系统,目前存储问卷以及问卷结果是这样的:
每新增一份问卷,数据库增加两个表,其中一个表用来存放这份问卷的信息,另一个表用来存放问卷结果信息
之前没怎么接触过数据库,在做这个系统之前查了一些关于数据库的资料,看到有人说
表的数量多不会影响查询速度,反而可能会因为你的数据存储结构更加有条理了而是查询更高效
在这个系统运行了一段时间之后,我感觉上面这种说法好像不太靠谱,现在正在准备重新设计数据库的结构。在此之前我想问一下各位熟悉数据库的前辈:数据库表的数量像我刚刚描述的那样动态增加会有什么弊端?数据库的结构设计一般遵循什么样的规则?
20140530 17:10 新增
感谢各位的回答,大家的回答算是解答了我的疑惑,另外我想说明一下,我这个问题主要不是问我这个数据库该怎么设计,而是侧重于数据表太多会有什么样的结果。
再次感谢各位的回答啦 :P
别超过几百个表从性能上来说问题不大——个人浅见,无依据。
但是,如果你的每个表都只有几行数据,或者数据量不会增加的话,这种设计是对数据库表的误用,可以参考下面的方式优化:
参考:
网上还有很多讨论,可以自己去看。
总体来说,表太多了,一是文件系统效率会降低,二是维护难度增加。
建议你根据实际需求情况,如果一天最多一个调查,那么无论哪种方案都是能够承受的。