1
0
mirror of https://gitee.com/tawords/tawords-docs synced 2025-01-11 11:58:14 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
tawords-docs/docs/manual/start/database.md
2021-08-07 00:54:13 +08:00

12 KiB
Raw Blame History

数据表前缀默认为bdc_

v1.5

更新时间2021.04.10

点击展开
-- --------------------------------------------------------

--
-- 表的结构 `users`
--

CREATE TABLE `users` (

-- 用户基本信息
  `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用户 id',
  `username` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名(可以修改,但唯一)',
  `uuid` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '注册时生成,全局唯一不可改',
  `password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码(暂时,因为后期加密方式可能会升级)',
  `encryptedpwd` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码MD5加盐后Bcypt加密',
  `safety_password` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '安全密码',
  `encryptedsafety_pwd` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '密码MD5加盐后Bcypt加密',
  `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '用户状态(0正常 1禁用 2审核中 3审核拒绝 4审核忽略)',
  `sex` tinyint(4) NOT NULL DEFAULT '0' COMMENT '性别(0未填写 1男 2女)',
  `education` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '手机号',
  `mobile` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '手机号',
  `mail` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '邮箱',

-- 用户社交信息 及 统计
  `nickname` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '用户昵称',
  `avatar` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '头像地址',
  `avatar_at` datetime DEFAULT NULL COMMENT '头像修改时间',
  `signature` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '个性签名',
  `signature_at` datetime DEFAULT NULL COMMENT '个性签名更新时间',
  `thread_count` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '主题数',
  `follow_count` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '关注数',
  `fans_count` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '粉丝数',
  `liked_count` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '点赞数',

-- 虚拟资产
  `virtual_currency` DECIMAL(10,0) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'β币',

-- 付费信息
  `joined_at` datetime DEFAULT NULL COMMENT '付费时间',
  `expired_at` datetime DEFAULT NULL COMMENT '付费到期时间',

-- 实名认证
  `identity` char(18) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '身份证号码',
  `realname` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '身份证姓名',

-- 登陆相关
  `last_login_ip` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '最后登录 ip',
  `login_at` datetime DEFAULT NULL COMMENT '最后登录时间',
  `login_count` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '登录次数',

-- 注册相关,暂时用不到,但是保留,后续找回密码可能用得到
  `register_ip` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '注册ip',
  `created_at` datetime NOT NULL COMMENT '注册时间',
  `register_reason` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '注册原因',

-- 账户修改相关
  `username_bout` int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '用户名修改次数',

-- 协议相关
  `accept_policy_version` int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '用户接受的相关协议版本号,相关协议更新后可通知到用户',

-- 用户独立表相关(这个待定)
  `db_file` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '用户学习记录SQLite数据库文件名',
  `db_version` int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'SQLite数据库内用户数据版本记录版本便于后期分批升级用户数据',

-- 设置表的索引

-- 设置主键
  PRIMARY KEY (`id`),

-- 设置唯一
  UNIQUE KEY `users_uuid_unique` (`uuid`),
  UNIQUE KEY `users_username_unique` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';

-- --------------------------------------------------------

-- --------------------------------------------------------

--
-- 表的结构 `attachments`
--

CREATE TABLE `attachments` (
  `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '附件 id',
  `uuid` char(36) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'uuid',
  `user_id` bigint(20) UNSIGNED NOT NULL COMMENT '用户 id',
  `type` smallint(5) UNSIGNED NOT NULL DEFAULT '0' COMMENT '附件类型(0未知1图片2视频3音频4其他附件)',
  `is_remote` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' COMMENT '是否远程附件',
  `is_approved` tinyint(3) UNSIGNED NOT NULL DEFAULT '1' COMMENT '是否合法',
  `attachment` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '文件系统生成的名称',
  `file_path` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '文件路径',
  `file_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '文件原名称',
  `file_size` int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '文件大小',
  `file_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '文件类型',
  `ip` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'ip 地址',
  `created_at` datetime NOT NULL COMMENT '创建时间',
  `updated_at` datetime NOT NULL COMMENT '更新时间',

-- 设置主键
  PRIMARY KEY (`id`),

-- 设置唯一
  UNIQUE KEY `attachments_attachment_unique` (`attachment`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='附件';

-- --------------------------------------------------------

-- --------------------------------------------------------

--
-- 表的结构 `settings`
--

CREATE TABLE `settings` (
  `key` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '设置项 key设置项的名称',
  `value` text COLLATE utf8mb4_unicode_ci COMMENT '设置项 value设置项的值',
  `tag` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'default' COMMENT '设置项 tag设置项所在分类',

-- 设置主键
  PRIMARY KEY (`key`,`tag`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='网站设置';

--
-- 转存表中的数据 `settings`
--

INSERT INTO `settings` (`key`, `value`, `tag`) VALUES
  ('favicon', 'favicon.png', 'default'),
  ('title','在线背单词(开发中)','site'),
  ('captcha_font', '/static/font/geneva.ttf', 'font');
COMMIT;

-- --------------------------------------------------------

-- --------------------------------------------------------

--
-- 表的结构 `words`
--

CREATE TABLE `words` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '单词 id',
  `words` varchar(255) NOT NULL DEFAULT '' COMMENT '英语单词(词组)',
  `word_type` smallint(5) UNSIGNED NOT NULL DEFAULT 0 COMMENT '类型(0未知1单词2词组)',
  `pho` text NOT NULL COMMENT '音标 phonetic-transcription',
  `trans` longtext NOT NULL COMMENT '中文',
  `search_count` int(11) NOT NULL DEFAULT 0 COMMENT '查询统计',
  `look_count` int(11) NOT NULL DEFAULT 0 COMMENT '浏览统计',
  `favi_count` int(11) NOT NULL DEFAULT 0 COMMENT '收藏统计',
  `star_count` int(11) NOT NULL DEFAULT 0 COMMENT '星标统计',
  `mark_count` int(11) NOT NULL DEFAULT 0 COMMENT '书签统计',

-- 设置主键
  PRIMARY KEY (`id`,`words`),

-- 设置唯一
  UNIQUE(`words`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='单词表';

-- --------------------------------------------------------

-- --------------------------------------------------------

--
-- 表的结构 `wordbooks`
--

CREATE TABLE `wordbooks` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '词书 id',
  `name` varchar(255) NOT NULL DEFAULT '' COMMENT '词书名称(用于显示给用户)',
  `alias` varchar(255) NOT NULL DEFAULT '' COMMENT '词书别名用于url访问及数据库查询',
  `intro` text NOT NULL COMMENT '词书简介',

  `type` smallint(5) UNSIGNED NOT NULL DEFAULT 0 COMMENT '类型(0用户上传词书1公共词书)',
  `permission` smallint(5) UNSIGNED NOT NULL DEFAULT 0 COMMENT '权限(0私密1公开2审核中)',
  `recommend` smallint(5) UNSIGNED NOT NULL DEFAULT 0 COMMENT '类型(0不推荐1推荐)',

  `create_at` datetime DEFAULT NULL COMMENT '创建时间',
  `update_at` datetime DEFAULT NULL COMMENT '更新时间',

  `search_count` int(11) NOT NULL DEFAULT 0 COMMENT '查询统计',
  `look_count` int(11) NOT NULL DEFAULT 0 COMMENT '浏览统计',
  `favi_count` int(11) NOT NULL DEFAULT 0 COMMENT '收藏统计',
  `star_count` int(11) NOT NULL DEFAULT 0 COMMENT '星标统计',
  `mark_count` int(11) NOT NULL DEFAULT 0 COMMENT '书签统计',

-- 设置主键
  PRIMARY KEY (`id`,`alias`),

-- 设置唯一
  UNIQUE(`alias`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='词书表';

-- --------------------------------------------------------

-- --------------------------------------------------------

--
-- 表的结构 `word_ref_wordbook`
--

CREATE TABLE `word_ref_wordbook` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `word_id` int(11) NOT NULL COMMENT 'id',
  `wordbook_id` int(11) NOT NULL COMMENT 'id',

-- 设置主键
  PRIMARY KEY (`id`,`word_id`,`wordbook_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='单词、词书关联表';

-- --------------------------------------------------------

-- --------------------------------------------------------

--
-- 表的结构 `word_supplements` (用于保存用户提交的数据库中不存在或者有错误的单词)
--

CREATE TABLE `word_supplements` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '工单 id',
  `word_id` int(11) NOT NULL COMMENT '单词 id',
  `uuid` varchar(100) NOT NULL COMMENT '用户 uuid',
  `type` smallint(5) UNSIGNED NOT NULL COMMENT '类型(0补充数据库中不存在的单词1单词拼写错误2单词释义错误、错字、乱码3单词释义不全4其他)',
  `create_at` datetime DEFAULT NULL COMMENT '创建时间(时间戳)',
  `content` text NOT NULL COMMENT '用户提交内容',
  `status` smallint(5) UNSIGNED NOT NULL COMMENT '状态(0等待管理员回复1被采纳2被拒绝3未被采纳但是有一定用处)',

-- 设置主键
  PRIMARY KEY (`id`,`word_id`,`uuid`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='错误单词反馈记录表';

-- --------------------------------------------------------

-- --------------------------------------------------------

ALTER TABLE `attachments` ADD FOREIGN KEY (`uuid`) REFERENCES `users` (`uuid`);

ALTER TABLE `word_supplements` ADD FOREIGN KEY (`word_id`) REFERENCES `words` (`id`);

ALTER TABLE `word_supplements` ADD FOREIGN KEY (`uuid`) REFERENCES `users` (`uuid`);

ALTER TABLE `word_ref_wordbook` ADD FOREIGN KEY (`word_id`) REFERENCES `words` (`id`);

ALTER TABLE `word_ref_wordbook` ADD FOREIGN KEY (`wordbook_id`) REFERENCES `wordbooks` (`id`);



--
-- 删除表
--
DROP TABLE `word_supplements`;
DROP TABLE `wordbooks`;
DROP TABLE `words`;
DROP TABLE `settings`;
DROP TABLE `attachments`;
DROP TABLE `users`;

v1.3

更新时间2021.01.22

【附件】v1.3.sql