文件共享服务器的数据库表格设计问题。。。
我刚开始接触一点数据库的知识,SQL那章节都还没看完。
最近在做一个大作业----开发一个文件资源共享的C/S模式的小软件。
基本功能有1.上传到服务器共享,
2.上传到服务器做为私有资源(别人不能下载的)
3.下载各种资源。
我打算用IOCP这种模型来做这个。应为貌似它有TransmiteFile这种函数适合传文件。
/*===================================================================================*/
现在对服务器数据库设计问题有困惑。下面是我要做的数据库表格。下面是描述+问题。
1.首先数据库中维护一张用户基本信息表,属性有:用户名,密码,积分,排名,注册时间。这个表格简单嘛!绿色的是主键。(积分排名完全是受CSDN影响而设计上去的,
)
2.因为用户可以上传视频file,音乐file,学习file,所以又要维护3张表格,这3张表格主键,属性都一样,分别是文件编号,文件名,文件描述,上传者用户名,下载次数。
问题2.1:有没必要再维护一张总表呢,就是这3个表格的总和,既有视频file又有音乐file,又有学习file。或者说是设计成只有总表而没有分成这3个表。(个人觉得表格只有一张速度慢)
问题2.2:最终放文件的路径是
E:/服务器文件夹管理/视频/
E:/服务器文件夹管理/音乐/
E:/服务器文件夹管理/学习/
E:/服务器文件夹管理/用户私人文件/用户名1/ 这里保存用户上传的私人文件
E:/服务器文件夹管理/用户私人文件/用户名2/ 同上
这样子设计是否合理??(感觉这个问题跟没问一样,干脆就把这条问题当成是我的描述吧。)
3.打算用户注册一个号,就在服务器数据库给他动态分配3张表格---分别是上传之私人资源的file相关信息,
还有上传至共享file资源的相关信息,最后是下载的file的相关信息。表格的命名我会以用户名+标识符来命名
问题3.1:这样会不会导致表格数量太多不容易管理??类似这种数据库是否是这样设计的?
问题提出后,也感到稍微清晰了点,请大伙多多指教!给点意见参考。
数据库 服务器 表格设计 文件管理
[解决办法]
不建议注册用户的时候建新表,所有的文件可以都放在一张表中,数据库的大数据处理能力还是很强的,可以不用太早考虑这个优化。
文件的上传和下载推荐用FTP的方式。
[解决办法]
file表加多一个字段 文件类型 就可以了
历史表一般按时间分拆为当前表和历史表
当前表保留最新一段时间,如3个月前至今
而超过3个月的数据则移到历史表
善用数据库的功能,如表分区等
大型数据库处理千万级数据还是可以的