数据库:PostgreSQL
目的功能:主要用于管理用户上传文件处理
1、对于文件 hash ( SHA256 )相同的文件只保留一份,在文件系统中根据上传时间多级目录存储;
2、假如用户 A 上传了文件 A,但是如果用户 B 并没有上传过 A,则不能访问文件 A,如果用户 B 上传了文件 A(此时秒上传)就可以访问文件 A。
根据此需求设计了 2 个表(隐含 user 表,此处省略):
1、file_path (其余省略)
① id:自增唯一主键,整数
② hash: 主键非空,固定长度字符串,同时上传的文件将会被重名为该值+原文件名后缀
③ path:非空字符串,磁盘相对路径
2、file_match (简化)
① id:自增唯一主键,整数
② fid: 等效于 file_path.id
③ uid:等效于 user.id
在设计查询语句时,怎么写比较好?
1、给出 uid、hash 时,得到文件路径
子查询?视图?
目的功能:主要用于管理用户上传文件处理
1、对于文件 hash ( SHA256 )相同的文件只保留一份,在文件系统中根据上传时间多级目录存储;
2、假如用户 A 上传了文件 A,但是如果用户 B 并没有上传过 A,则不能访问文件 A,如果用户 B 上传了文件 A(此时秒上传)就可以访问文件 A。
根据此需求设计了 2 个表(隐含 user 表,此处省略):
1、file_path (其余省略)
① id:自增唯一主键,整数
② hash: 主键非空,固定长度字符串,同时上传的文件将会被重名为该值+原文件名后缀
③ path:非空字符串,磁盘相对路径
2、file_match (简化)
① id:自增唯一主键,整数
② fid: 等效于 file_path.id
③ uid:等效于 user.id
在设计查询语句时,怎么写比较好?
1、给出 uid、hash 时,得到文件路径
子查询?视图?