同事设计的数据表结构
我们需要实现的是大文件的切片上传功能,下面是同事设计的两个相关的MySQL数据表,一个用来记录文件信息,一个用来记录文件的分片信息:
表一:ext_big_file
说明:updated_at字段是设置了自动更新的,下同。
表二:ext_big_file_part
关于这两个表
先说说比较好的地方(只针对上截图看得见的,其他如索引不在考虑范围内):
再说说不好的地方:
优化后的表结构
从表结构看,主要改动如下:
还有一个比较大的改动,从这两个表是看不出来的,把上传信息从大文件信息表ext_big_file分离了出来,同一个大文件应该可以被上传多次,这时的上传信息有多条,但是对应大文件记录只有一条。
最佳实践总结
我们设计数据库时,应该考虑以下几点来确保最佳的设计:
其实,所有设计的前提和关键都是:理解业务。脱离业务的设计就是瞎扯,表设计不是把字段设计出来就可以了,而是要理解业务的逻辑。