- 63
- 0
大三学生,和小伙伴们正在弄网盘系统的毕设,主要使用vue+mysql+PHP+redis,在设计表的时候遇到问题,前来请教一下做过网盘项目的前辈
1、这个表是专门存储文件信息的,表结构如下
CREATE TABLE `wp_origin` (
`origin_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '递增主键',
`origin_md5` char(32) NOT NULL DEFAULT '' COMMENT 'md5值',
`origin_size` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '文件大小',
`origin_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '引用计数',
`origin_path` varchar(2000) NOT NULL DEFAULT '' COMMENT '保存路径',
`add_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '添加时间',
`user_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '上传者id',
`origin_status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '状态[1=正常][2=不允许上传][3=未经允许的上传][4=已屏蔽]',
PRIMARY KEY (`origin_id`),
KEY `origin_md5` (`origin_md5`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8 COMMENT='源文件';
2、这个表是用来存储用户的网盘文件信息的,表结构如下
CREATE TABLE `wp_file` (
`file_id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL DEFAULT '0',
`file_name` varchar(200) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '文件名称',
`parent_path` varchar(1000) COLLATE utf8_bin NOT NULL DEFAULT '/' COMMENT '父级路径',
`file_type` tinyint(2) unsigned NOT NULL DEFAULT '0' COMMENT '文件类型',
`file_size` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '文件大小',
`status` tinyint(1) unsigned NOT NULL DEFAULT '5' COMMENT '文件状态 [3=删除中][4=回收站][5=正常状态][6=已分享]',
`add_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '更新时间',
`is_link` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '0为未分享,1为已分享',
`is_dir` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否是文件夹,[0=文件],[1=文件夹]',
`delete_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
`origin_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT ' 源文件id',
`origin_path` varchar(2000) COLLATE utf8_bin DEFAULT '' COMMENT 'oss保存路径',
PRIMARY KEY (`file_id`),
KEY `uid` (`user_id`) USING BTREE,
KEY `parent_path` (`parent_path`(255)) USING BTREE,
KEY `file_name` (`file_name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=825 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='用户文件信息表';
问题主要如下
1、上面两个表设计是否合理,如不合理,该怎样修改?
2、考虑到网盘的用户数量级,像百度云盘这些,数据量是很大的,我的想法是要么mysql分库分表,要么上面两个表存mongodb,然后相关join查询在服务层实现,(mongodb分布式)不知道这个做法是否正确?如果不用mongodb 那么该怎么处理这种大数据,(大家别喷我等到了那个数量级再来处理,我就是想知道到了这种数量基本该怎么处理,谢谢)
在此先谢谢回答的朋友们
1
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
