From a4e318797fb93efdb62729258edfcd4156746144 Mon Sep 17 00:00:00 2001 From: ronger Date: Wed, 8 Feb 2023 16:13:12 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E5=A2=9E=E5=8A=A0=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E6=95=B0=E6=8D=AE=E5=BA=93=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/dev/docker-compose.yml | 2 + docker/dev/forest.sql | 837 ++++++++++++++++++++++++++++++++++ 2 files changed, 839 insertions(+) create mode 100644 docker/dev/forest.sql diff --git a/docker/dev/docker-compose.yml b/docker/dev/docker-compose.yml index 1c3c271..b1409d0 100644 --- a/docker/dev/docker-compose.yml +++ b/docker/dev/docker-compose.yml @@ -18,12 +18,14 @@ services: ports: - "3306:3306" volumes: + - "./forest.sql:/forest.sql" - "mysql8-volume:/etc/mysql/conf.d" - "mysql8-volume:/var/lib/mysql" - "mysql8-volume:/logs" environment: - MYSQL_ROOT_PASSWORD=XzHvhX4CDaN696oQAXdmlcsrqgWbkxRl - TZ=Asia/Shanghai + command: ["--default-authentication-plugin=mysql_native_password", "--init-file=/forest.sql"] volumes: mysql8-volume: redis-volume: diff --git a/docker/dev/forest.sql b/docker/dev/forest.sql new file mode 100644 index 0000000..59ac599 --- /dev/null +++ b/docker/dev/forest.sql @@ -0,0 +1,837 @@ +create database forest default character set utf8mb4 collate utf8mb4_unicode_ci; + +use forest; + +create table forest_article +( + id bigint auto_increment comment '主键' + primary key, + article_title varchar(128) null comment '文章标题', + article_thumbnail_url varchar(128) null comment '文章缩略图', + article_author_id bigint null comment '文章作者id', + article_type char default '0' null comment '文章类型', + article_tags varchar(128) null comment '文章标签', + article_view_count int default 1 null comment '浏览总数', + article_preview_content varchar(256) null comment '预览内容', + article_comment_count int default 0 null comment '评论总数', + article_permalink varchar(128) null comment '文章永久链接', + article_link varchar(32) null comment '站内链接', + created_time datetime null comment '创建时间', + updated_time datetime null comment '更新时间', + article_perfect char default '0' null comment '0:非优选1:优选', + article_status char default '0' null comment '文章状态', + article_thumbs_up_count int default 0 null comment '点赞总数', + article_sponsor_count int default 0 null comment '赞赏总数' +) comment '文章表 ' collate = utf8mb4_unicode_ci; + +INSERT INTO forest.forest_article (id, article_title, article_thumbnail_url, article_author_id, article_type, + article_tags, article_view_count, article_preview_content, article_comment_count, + article_permalink, article_link, created_time, updated_time, article_perfect, + article_status, article_thumbs_up_count, article_sponsor_count) +VALUES (1, '给新人的一封信', null, 1, '0', '公告,新手信', 3275, + '您好,欢迎来到 RYMCU 社区,RYMCU 是一个嵌入式知识学习交流平台。RY 取自”容易”的首字母,寓意为让电子设计变得 so easy。新手的疑问初学者都有很多疑问,在这里对这些疑问进行一一解答。我英语不好,可以学习编程吗?对于初学者来说,英语不是主要的障碍,国内有着充足的中文教程。但在接下来的学习过程中,需要阅读大量的英文文档,所以还是需要有一些英语基础和理解学习能力,配合翻译工具(如百度', + 0, 'http://localhost:3000/article/1', '/article/1', '2020-01-03 01:27:25', '2022-09-26 15:33:03', '0', '0', 7, + 3); + +create table forest_article_content +( + id_article bigint not null comment '主键', + article_content text null comment '文章内容原文', + article_content_html text null comment '文章内容Html', + created_time datetime null comment '创建时间', + updated_time datetime null comment '更新时间' +) comment ' ' collate = utf8mb4_unicode_ci; + +create index forest_article_content_id_article_index + on forest_article_content (id_article); + +INSERT INTO forest.forest_article_content (id_article, article_content, article_content_html, created_time, + updated_time) +VALUES (1, '您好,欢迎来到 RYMCU 社区,RYMCU 是一个嵌入式知识学习交流平台。RY 取自”容易”的首字母,寓意为让电子设计变得 so easy。 + +## 新手的疑问 + +初学者都有很多疑问,在这里对这些疑问进行一一解答。 + +- 我英语不好,可以学习编程吗? + 对于初学者来说,英语不是主要的障碍,国内有着充足的中文教程。但在接下来的学习过程中,需要阅读大量的英文文档,所以还是需要有一些英语基础和理解学习能力,配合翻译工具(如百度翻译)进行理解。 +- 我数学不好,可以学习编程吗? + 对于初学者来说,有必要掌握数学逻辑思维和解决问题的思路,这些能力都在数学学习中得到锻炼,想必学习编程的人数学成绩肯定不错。初学者不需要多高的数学知识水平,但在未来的学习过程中需要更高级的数学知识,应随时做好接受学习新知识的准备。 +- 我想学习编程,大佬可以教教我吗? + 一般我是拒绝的,我认为学习是互相促进的过程,而不是单方面的输出,并且我也有很多事情要做。不仅是我,绝大多数人都会拒绝。 +- 学习编程是使用 IDE 好还是 Notepad 好? + 最近看到有人在争论这个问题,使用 IDE 是新手的不二选择。 +- 好吧,我自学编程,有问题可以问大佬吗? + 可以,但是我拒绝回答书中的基础问题和可以通过搜索引擎解决的问题。 +- 学习编程是看书好还是看视频好? + 萝卜青菜,各有所爱,关键是看哪种方式能让你更好理解和学习。我个人是喜爱书本,可以随时查阅资料,非常方便。 +- 我学习了很久,但没有成效,我是不是没有天赋? + 我个人觉得对于入门的学习来说,天赋对于学习的影响微乎其微,如果你的学习效率低下,考虑是不是以下原因: + + - 单纯的努力不足,三天打鱼两天晒网。如果不能改正,不如考虑干点别的。 + - 数学逻辑思维和解决问题的能力不足。这个可以学习一些简单易懂的教程,看看视频等,慢慢锻炼,没有任何捷径。 + - 学习方法不对,主要是练得少。只翻书和看视频是没有用的,必须配合大量的练习。个人推荐的方法是: + - 看完书以后把书上给出的例题再敲一遍,不是照着书上写。 + - 把课后习题都给做了。 + - 做几个自己感兴趣的项目。 + - 对于自己不懂的问题,先看看书,再百度谷歌,最后才询问他人。 + +## 提问的方法 + +当你遇到**使用搜索引擎、查阅相关文档、进行 Debug**(如果没有做过上述操作的话,请立刻去做)也无法解决的问题的时候,你可能会向别人求助。现在就来讲讲如何正确提问。 + +当你进行提问时,请保证你准确提供了以下信息: + +- 准确的描述你的需求和实际问题情况。 +- 准确的描述你所在的平台的信息。例如: + - 开发板型号 + - 运行程序( IDE 等)名称及其版本 + - Windows/Linux/MacOS 任一平台及其版本 + - 依赖的类库及其版本 +- 提供你的源代码,将源代码包括开发环境完整上传至源码托管平台(如 Github)。 +- 提供你的完整日志、异常输出。 + +如果你在社区提问,请在你的标题也简略的包含问题描述和平台信息。例如 `stm32f103x 开发板` `win10` 运行串口通信程序时,中文显示乱码 + +如果你想学习更多关于提问的方法、技巧、礼仪,看看[提问的智慧](https://rymcu.com/article/80)会给予你许多帮助。 + +## 自学的方法 + +- 每当学习到新知识的时候应该及时的练习和实践 +- 多看看开发文档,每次你都能获得新的收获 +- 多看看别人的源代码,很多问题都能得到解决 +- 搜索引擎是一个好东西 +- 写学习笔记和博客是记录知识的好方式,但不是死记知识点 +- 好的提问方式才能获得正确答案 +- 合理的规划学习时间,而不是三天打鱼两天晒网 + +## C 语言基础教程 + +- [C 语言中文教程](https://doc.yonyoucloud.com/doc/wiki/project/c/c-intro.html) +- [C语言小白变怪兽](http://c.biancheng.net/c/) + +## 单片机基础教程 + +- [51 单片机入门教程(Keil4 版)](https://rymcu.com/portfolio/42) +- [STM32 独家入门秘籍](https://rymcu.com/portfolio/11) +- [51 单片机入门教程(VS Code 版)](https://rymcu.com/portfolio/41) + +## 其他教程 + +- [markdown 教程](https://rymcu.com/guides/markdown) +- [社区编辑器使用教程](https://rymcu.com/guides/vditor) + +## 推荐书籍 + +- 《C 程序设计语言( 第 2 版 ) 》 —— [美] 布莱恩·W.克尼汉(Brian W.Kernighan),[美] 丹尼斯·M.里奇(Dennis M.Ritchie) 著 +- 《软技能: 代码之外的生存指南》—— [美] 约翰 Z.森梅兹(John Z.Sonmez) 著 +- 《大教堂与集市》—— [美] Eric S Raymond 著 +- 《黑客与画家》—— [美] Paul Graham 著 + +## 愿景 + +> 关于更多的信息请阅读 [《RYMCU 白皮书》](https://rymcu.com/article/115) + +我们致力于构建一个即严谨又活泼、专业又不失有趣的开源嵌入式知识平台。在这里我们可以畅所欲言、以平等、自由的身份获取和分享知识。在这里共同学习、交流、进步、成长。 + +## 行为准则 + +> 详细行为准则请参考 [参与者公约](https://rymcu.com/article/20) + +无论问题简单与否,欢迎大家积极留言、评论、交流。对他人多一些理解和包容,帮助他人解决问题和自我提升是我们的终极目标。 +欢迎您发表原创文章、分享独到见解、作出有价值的评论。所有原创内容著作权均归作者本人所有。所发表内容不得侵犯企业或个人的合法权益,包括但不限于涉及个人隐私、造谣与诽谤、商业侵权。 + +## 其他 + +### 微信公众号 + +![qrcodeforgh245b3234e782258.jpg](https://static.rymcu.com/article/1642081054095.jpg) + +### github + +[RYMCU](https://github.com/rymcu) + +### gitee + +[RYMCU 社区](https://gitee.com/rymcu-community) + +', '

您好,欢迎来到 RYMCU 社区,RYMCU 是一个嵌入式知识学习交流平台。RY 取自”容易”的首字母,寓意为让电子设计变得 so easy。

+

新手的疑问

+

初学者都有很多疑问,在这里对这些疑问进行一一解答。

+ +

提问的方法

+

当你遇到使用搜索引擎、查阅相关文档、进行 Debug(如果没有做过上述操作的话,请立刻去做)也无法解决的问题的时候,你可能会向别人求助。现在就来讲讲如何正确提问。

+

当你进行提问时,请保证你准确提供了以下信息:

+ +

如果你在社区提问,请在你的标题也简略的包含问题描述和平台信息。例如 stm32f103x 开发板 win10 运行串口通信程序时,中文显示乱码

+

如果你想学习更多关于提问的方法、技巧、礼仪,看看提问的智慧会给予你许多帮助。

+

自学的方法

+ +

C 语言基础教程

+ +

单片机基础教程

+ +

其他教程

+ +

推荐书籍

+ +

愿景

+
+

关于更多的信息请阅读 《RYMCU 白皮书》

+
+

我们致力于构建一个即严谨又活泼、专业又不失有趣的开源嵌入式知识平台。在这里我们可以畅所欲言、以平等、自由的身份获取和分享知识。在这里共同学习、交流、进步、成长。

+

行为准则

+
+

详细行为准则请参考 参与者公约

+
+

无论问题简单与否,欢迎大家积极留言、评论、交流。对他人多一些理解和包容,帮助他人解决问题和自我提升是我们的终极目标。
+欢迎您发表原创文章、分享独到见解、作出有价值的评论。所有原创内容著作权均归作者本人所有。所发表内容不得侵犯企业或个人的合法权益,包括但不限于涉及个人隐私、造谣与诽谤、商业侵权。

+

其他

+

微信公众号

+

qrcodeforgh245b3234e782258.jpg

+

github

+

RYMCU

+

gitee

+

RYMCU 社区

+', '2020-01-03 15:27:25', '2022-09-26 15:33:02'); + + +create table forest_article_thumbs_up +( + id bigint auto_increment comment '主键' + primary key, + id_article bigint null comment '文章表主键', + id_user bigint null comment '用户表主键', + thumbs_up_time datetime null comment '点赞时间' +) comment '文章点赞表 ' collate = utf8mb4_unicode_ci; + +create table forest_bank +( + id bigint auto_increment comment '主键' + primary key, + bank_name varchar(64) null comment '银行名称', + bank_owner bigint null comment '银行负责人', + bank_description varchar(512) null comment '银行描述', + created_by bigint null comment '创建人', + created_time datetime null comment '创建时间' +) comment '银行表 ' collate = utf8mb4_unicode_ci; + +create table forest_bank_account +( + id bigint auto_increment comment '主键' + primary key, + id_bank bigint null comment '所属银行', + bank_account varchar(32) null comment '银行账户', + account_balance decimal(32, 8) null comment '账户余额', + account_owner bigint null comment '账户所有者', + created_time datetime null comment '创建时间', + account_type char default '0' null comment '0: 普通账户 1: 银行账户' +) comment '银行账户表 ' collate = utf8mb4_unicode_ci; + +create unique index forest_bank_account_pk + on forest_bank_account (account_owner, bank_account); + +create table forest_comment +( + id bigint auto_increment comment '主键' + primary key, + comment_content text null comment '评论内容', + comment_author_id bigint null comment '作者 id', + comment_article_id bigint null comment '文章 id', + comment_sharp_url varchar(256) null comment '锚点 url', + comment_original_comment_id bigint null comment '父评论 id', + comment_status char default '0' null comment '状态', + comment_ip varchar(128) null comment '评论 IP', + comment_ua varchar(512) null comment 'User-Agent', + comment_anonymous char null comment '0:公开回帖,1:匿名回帖', + comment_reply_count int null comment '回帖计数', + comment_visible char null comment '0:所有人可见,1:仅楼主和自己可见', + created_time datetime null comment '创建时间' +) comment '评论表 ' collate = utf8mb4_unicode_ci; + +create table forest_currency_issue +( + id bigint auto_increment comment '主键' + primary key, + issue_value decimal(32, 8) null comment '发行数额', + created_by bigint null comment '发行人', + created_time datetime null comment '发行时间' +) comment '货币发行表 ' collate = utf8mb4_unicode_ci; + +create table forest_currency_rule +( + id bigint auto_increment comment '主键' + primary key, + rule_name varchar(128) null comment '规则名称', + rule_sign varchar(64) null comment '规则标志(与枚举变量对应)', + rule_description varchar(1024) null comment '规则描述', + money decimal(32, 8) null comment '金额', + award_status char default '0' null comment '奖励(0)/消耗(1)状态', + maximum_money decimal(32, 8) null comment '上限金额', + repeat_days int default 0 null comment '重复(0: 不重复,单位:天)', + status char default '0' null comment '状态' +) comment '货币规则表 ' collate = utf8mb4_unicode_ci; + +create table forest_follow +( + id bigint auto_increment comment '主键' + primary key, + follower_id bigint null comment '关注者 id', + following_id bigint null comment '关注数据 id', + following_type char null comment '0:用户,1:标签,2:帖子收藏,3:帖子关注' +) comment '关注表 ' collate = utf8mb4_unicode_ci; + +create table forest_notification +( + id bigint auto_increment comment '主键' + primary key, + id_user bigint null comment '用户id', + data_type char null comment '数据类型', + data_id bigint null comment '数据id', + has_read char default '0' null comment '是否已读', + data_summary varchar(256) null comment '数据摘要', + created_time datetime null comment '创建时间' +) comment '通知表 ' collate = utf8mb4_unicode_ci; + +create table forest_portfolio +( + id bigint auto_increment comment '主键' + primary key, + portfolio_head_img_url varchar(500) null comment '作品集头像', + portfolio_title varchar(32) null comment '作品集名称', + portfolio_author_id bigint null comment '作品集作者', + portfolio_description varchar(1024) null comment '作品集介绍', + created_time datetime null comment '创建时间', + updated_time datetime null comment '更新时间', + portfolio_description_html varchar(1024) null comment ' 作品集介绍HTML' +) comment '作品集表' collate = utf8mb4_unicode_ci; + +create table forest_portfolio_article +( + id bigint auto_increment comment '主键' + primary key, + id_portfolio bigint null comment '作品集表主键', + id_article bigint null comment '文章表主键', + sort_no int null comment '排序号' +) comment '作品集与文章关系表' collate = utf8mb4_unicode_ci; + +create table forest_role +( + id bigint auto_increment comment '主键' + primary key, + name varchar(32) null comment '名称', + input_code varchar(32) null comment '拼音码', + status char default '0' null comment '状态', + created_time datetime null comment '创建时间', + updated_time datetime null comment '更新时间', + weights tinyint default 0 null comment '权重,数值越小权限越大;0:无权限' +) comment ' ' collate = utf8mb4_unicode_ci; + +create table forest_sponsor +( + id bigint auto_increment comment '主键' + primary key, + data_type char null comment '数据类型', + data_id bigint null comment '数据主键', + sponsor bigint null comment '赞赏人', + sponsorship_time datetime null comment '赞赏日期', + sponsorship_money decimal(32, 8) null comment '赞赏金额' +) comment '赞赏表 ' collate = utf8mb4_unicode_ci; + +create table forest_tag +( + id bigint auto_increment comment '主键' + primary key, + tag_title varchar(32) null comment '标签名', + tag_icon_path varchar(512) null comment '标签图标', + tag_uri varchar(128) null comment '标签uri', + tag_description text null comment '描述', + tag_view_count int default 0 null comment '浏览量', + tag_article_count int default 0 null comment '关联文章总数', + tag_ad char null comment '标签广告', + tag_show_side_ad char null comment '是否显示全站侧边栏广告', + created_time datetime null comment '创建时间', + updated_time datetime null comment '更新时间', + tag_status char default '0' null comment '标签状态', + tag_reservation char default '0' null comment '保留标签', + tag_description_html text null +) comment '标签表 ' collate = utf8mb4_unicode_ci; + +create table forest_tag_article +( + id bigint auto_increment comment '主键' + primary key, + id_tag bigint null comment '标签 id', + id_article varchar(32) null comment '帖子 id', + article_comment_count int default 0 null comment '帖子评论计数 0', + article_perfect int default 0 null comment '0:非优选1:优选 0', + created_time datetime null comment '创建时间', + updated_time datetime null comment '更新时间' +) comment '标签 - 帖子关联表 ' collate = utf8mb4_unicode_ci; + +create index forest_tag_article_id_tag_index + on forest_tag_article (id_tag); + +create table forest_topic +( + id bigint auto_increment comment '主键' + primary key, + topic_title varchar(32) null comment '专题标题', + topic_uri varchar(32) null comment '专题路径', + topic_description text null comment '专题描述', + topic_type varchar(32) null comment '专题类型', + topic_sort int default 10 null comment '专题序号 10', + topic_icon_path varchar(128) null comment '专题图片路径', + topic_nva char default '0' null comment '0:作为导航1:不作为导航 0', + topic_tag_count int default 0 null comment '专题下标签总数 0', + topic_status char default '0' null comment '0:正常1:禁用 0', + created_time datetime null comment '创建时间', + updated_time datetime null comment '更新时间', + topic_description_html text null comment '专题描述 Html' +) comment '主题表' collate = utf8mb4_unicode_ci; + +create table forest_topic_tag +( + id bigint auto_increment comment '主键' + primary key, + id_topic bigint null comment '专题id', + id_tag bigint null comment '标签id', + created_time datetime null comment '创建时间', + updated_time datetime null comment '更新时间' +) comment '专题- 标签关联表 ' collate = utf8mb4_unicode_ci; + +create index forest_topic_tag_id_topic_index + on forest_topic_tag (id_topic); + +create table forest_transaction_record +( + id bigint auto_increment comment '交易主键' + primary key, + transaction_no varchar(32) null comment '交易流水号', + funds varchar(32) null comment '款项', + form_bank_account varchar(32) null comment '交易发起方', + to_bank_account varchar(32) null comment '交易收款方', + money decimal(32, 8) null comment '交易金额', + transaction_type char default '0' null comment '交易类型', + transaction_time datetime null comment '交易时间' +) comment '交易记录表 ' collate = utf8mb4_unicode_ci; + +create table forest_user +( + id bigint auto_increment comment '用户ID' + primary key, + account varchar(32) null comment '账号', + password varchar(64) not null comment '密码', + nickname varchar(128) null comment '昵称', + real_name varchar(32) null comment '真实姓名', + sex char default '0' null comment '性别', + avatar_type char default '0' null comment '头像类型', + avatar_url varchar(512) null comment '头像路径', + email varchar(64) null comment '邮箱', + phone varchar(11) null comment '电话', + status char default '0' null comment '状态', + created_time datetime null comment '创建时间', + updated_time datetime null comment '更新时间', + last_login_time datetime null comment '最后登录时间', + signature varchar(128) null comment '签名', + last_online_time datetime null comment '最后在线时间', + bg_img_url varchar(512) null comment '背景图片' +) comment '用户表 ' collate = utf8mb4_unicode_ci; + +create table forest_user_extend +( + id_user bigint not null comment '用户表主键', + github varchar(64) null comment 'github', + weibo varchar(32) null comment '微博', + weixin varchar(32) null comment '微信', + qq varchar(32) null comment 'qq', + blog varchar(500) null comment '博客' +) comment '用户扩展表 ' collate = utf8mb4_unicode_ci; + +create table forest_user_role +( + id_user bigint not null comment '用户表主键', + id_role bigint not null comment '角色表主键', + created_time datetime null comment '创建时间' +) comment '用户权限表 ' collate = utf8mb4_unicode_ci; + +create table forest_user_tag +( + id bigint auto_increment comment '主键' + primary key, + id_user bigint null comment '用户 id', + id_tag varchar(32) null comment '标签 id', + type char null comment '0:创建者,1:帖子使用,2:用户自评标签', + created_time datetime null comment '创建时间', + updated_time datetime null comment '更新时间' +) comment '用户 - 标签关联表 ' collate = utf8mb4_unicode_ci; + +create table forest_visit +( + id bigint auto_increment comment '主键' + primary key, + visit_url varchar(256) null comment '浏览链接', + visit_ip varchar(128) null comment 'IP', + visit_ua varchar(512) null comment 'User-Agent', + visit_city varchar(32) null comment '城市', + visit_device_id varchar(256) null comment '设备唯一标识', + visit_user_id bigint null comment '浏览者 id', + visit_referer_url varchar(256) null comment '上游链接', + created_time datetime null comment '创建时间', + expired_time datetime null comment '过期时间' +) comment '浏览表' collate = utf8mb4_unicode_ci; + +create table forest_lucene_user_dic +( + id int auto_increment comment '字典编号', + dic char(32) null comment '字典', + constraint forest_lucene_user_dic_id_uindex + unique (id) +) comment '用户扩展字典' collate = utf8mb4_unicode_ci; + +alter table forest_lucene_user_dic + add primary key (id); + +insert into forest.forest_role (id, name, input_code, status, created_time, updated_time, weights) +values (1, '管理员', 'admin', '0', '2019-11-16 04:22:45', '2019-11-16 04:22:45', 1); +insert into forest.forest_role (id, name, input_code, status, created_time, updated_time, weights) +values (2, '社区管理员', 'blog_admin', '0', '2019-12-05 03:10:05', '2019-12-05 17:11:35', 2); +insert into forest.forest_role (id, name, input_code, status, created_time, updated_time, weights) +values (3, '作者', 'zz', '0', '2020-03-12 15:07:27', '2020-03-12 15:07:27', 3); +insert into forest.forest_role (id, name, input_code, status, created_time, updated_time, weights) +values (4, '普通用户', 'user', '0', '2019-12-05 03:10:59', '2020-03-12 15:13:49', 4); + +insert into forest.forest_user (id, account, password, nickname, real_name, sex, avatar_type, avatar_url, email, phone, + status, created_time, updated_time, last_login_time, signature) +values (1, 'admin', '8ce2dd866238958ac4f07870766813cdaa39a9b83a8c75e26aa50f23', 'admin', 'admin', '0', '0', null, + 'admin@rymcu.com', + null, '0', '2021-01-25 18:21:51', '2021-01-25 18:21:54', '2021-01-25 18:21:54', null); +insert into forest.forest_user (id, account, password, nickname, real_name, sex, avatar_type, avatar_url, email, phone, + status, created_time, updated_time, last_login_time, signature) +values (2, 'testUser', '8ce2dd866238958ac4f07870766813cdaa39a9b83a8c75e26aa50f23', 'testUser', 'testUser', '0', '0', + null, 'testUser@rymcu.com', + null, '0', '2021-01-25 18:21:51', '2021-01-25 18:21:54', '2021-01-25 18:21:54', null); + +insert into forest.forest_user_role (id_user, id_role, created_time) +values (1, 1, '2021-01-25 18:22:12'); + +create table forest_file +( + id int unsigned auto_increment comment 'id' + primary key, + md5_value varchar(40) not null comment '文件md5值', + file_path varchar(255) not null comment '文件上传路径', + file_url varchar(255) not null comment '网络访问路径', + created_time datetime null comment '创建时间', + updated_time datetime null comment '更新时间', + created_by int null comment '创建人', + file_size int null comment '文件大小', + file_type varchar(10) null comment '文件类型' +) comment '文件上传记录表' collate = utf8mb4_unicode_ci; + +create index index_md5_value_created_by + on forest_file (md5_value, created_by); + +create index index_created_by + on forest_file (created_by); + +create index index_md5_value + on forest_file (md5_value); + +create table forest_login_record +( + id bigint auto_increment comment '主键' + primary key, + id_user bigint not null comment '用户表主键', + login_ip varchar(128) null comment '登录设备IP', + login_ua varchar(512) null comment '登录设备UA', + login_city varchar(128) null comment '登录设备所在城市', + login_os varchar(64) null comment '登录设备操作系统', + login_browser varchar(64) null comment '登录设备浏览器', + created_time datetime null comment '登录时间', + login_device_id varchar(512) null comment '登录设备/浏览器指纹', + constraint forest_login_record_id_uindex + unique (id) +) comment '登录记录表' collate = utf8mb4_unicode_ci; + +create table forest_product +( + id int auto_increment comment '主键' + primary key, + product_title varchar(100) null comment '产品名', + product_price int default 0 null comment '单价(单位:分)', + product_img_url varchar(100) null comment '产品主图', + product_description varchar(200) null comment '产品描述', + weights tinyint default 50 null comment '权重,数值越小权限越大;0:无权限', + created_time datetime null comment '创建时间', + updated_time datetime null comment '更新时间', + constraint forest_product_id_uindex + unique (id) +) + comment '产品表'; + +create table forest_product_content +( + id_product int null comment '产品表主键', + product_content text null comment '产品详情原文', + product_content_html text null comment '产品详情 Html', + created_time datetime null comment '创建时间', + updated_time datetime null comment '更新时间' +) + comment '产品详情表'; + +INSERT INTO forest.forest_product (id, product_title, product_price, product_img_url, product_description, weights, + created_time, updated_time) +VALUES (1, 'Nebula Pi', 2000000, 'https://static.rymcu.com/article/1648960741563.jpg', '产品描述', 20, + '2022-06-13 22:35:33', '2022-06-13 22:35:33'); + +INSERT INTO forest.forest_product_content (id_product, product_content, product_content_html, created_time, + updated_time) +VALUES (1, '![nebula pi](https://static.rymcu.com/article/1640531590770) + +Nebula-Pi 开发板平台 + +## 1.1主板结构及布局 + +![](https://static.rymcu.com/article/1640531590844) + +图1.1 Nebula-Pi 单片机开发平台 + +## 1.2主板元件说明 + +从图1.1可以看出, Nebula-Pi 开发板平台资源丰富,不仅涵盖了 51 单片机所有内部资源,还扩展了大量的外设,单片机的各项功能均可以在平台上得到验证。我们以顺时针的顺序从**①**到**⑳**,分别介绍主要模块的功能。 + +| 序号 | 元器件 | 功能介绍 | +| --- | --- | --- | +| 1 | 迷你 USB 接口 | 给开发板供电,以及计算机与开发板通信 | +| 2 | 单片机跳线帽 | 开发板上有两块独立的 51 单片机,可以通过这个跳线进行切换,选择你需要使用的单片机。 | +| 3 | 电源开关 | 开发板电源开关 | +| 4 | 51 单片机 STC89C52RC | 这套教程的主角, 51 单片机,选用 STC 公司的 STC89C52RC 型号进行讲解 | +| 5 | 液晶显示器跳线帽 | 液晶显示器的跳线,可以选择 OLED 或者 LCD | +| 6 | 主板复位按钮 | 复位按钮,相当于电脑的重启按键 | +| 7 | 数字温度传感器 | 温度传感器,可以测量环境温度 | +| 8 | 红外接收头 | 接收红外遥控信号专用 | +| 9 | 液晶显示器接口 | 预留的液晶显示器 1602/12864 等的接口 | +| 10 | 数码管 | 4 位数码管,可以同时显示 4 个数字等 | +| 11 | 蜂鸣器 | 相当于开发板的小喇叭,可以发出"滴滴"等声音 | +| 12 | 光敏&热敏电阻 | 两种类型的电阻,分别可以用来测量光强度和温度 | +| 13 | 步进电机接口 | 预留给电机的接口 | +| 14 | 8 个 LED 灯 | 8 个 LED 小灯,可实现指示灯,流水灯等效果 | +| 15 | 增强型 51 单片机 STC12 | 开发板上的另外一块 51 单片机,比主角功能更强大,第一块用来学习,这一块用来做项目,学习、实践两不误 | +| 16 | 2.4G 无线模块接口 | 为 2.4G 无线通信模块预留的接口,无线通信距离可以达到 1-2Km,大大扩展了开发板的功能 | +| 17 | 3 个独立按键 | 3 个按键,可以当做开发板的输入设备,相当于迷你版键盘 | +| 18 | 继电器接口 | 开发板上集成了继电器,这个接口预留给用户接线用的,可以用来控制 220V 设备的开关。因此,可以通过开发板來控制各种类型的家用电器 | +| 19 | 电源端子 | 预留了 5V 和 3.3V 的电源端子,可以用来给其他设备供电 | +| 20 | WiFi 模块接口 | WiFi 模块接口,接上 WiFi 模块,开发板可以轻松上网冲浪 | + +表 1-1 主板元器件说明 + +', '

nebula pi

+

Nebula-Pi 开发板平台

+

1.1 主板结构及布局

+

+

图 1.1 Nebula-Pi 单片机开发平台

+

1.2 主板元件说明

+

从图 1.1 可以看出, Nebula-Pi 开发板平台资源丰富,不仅涵盖了 51 单片机所有内部资源,还扩展了大量的外设,单片机的各项功能均可以在平台上得到验证。我们以顺时针的顺序从 ,分别介绍主要模块的功能。

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
序号元器件功能介绍
1迷你 USB 接口给开发板供电,以及计算机与开发板通信
2单片机跳线帽开发板上有两块独立的 51 单片机,可以通过这个跳线进行切换,选择你需要使用的单片机。
3电源开关开发板电源开关
451 单片机 STC89C52RC这套教程的主角, 51 单片机,选用 STC 公司的 STC89C52RC 型号进行讲解
5液晶显示器跳线帽液晶显示器的跳线,可以选择 OLED 或者 LCD
6主板复位按钮复位按钮,相当于电脑的重启按键
7数字温度传感器温度传感器,可以测量环境温度
8红外接收头接收红外遥控信号专用
9液晶显示器接口预留的液晶显示器 1602/12864 等的接口
10数码管4 位数码管,可以同时显示 4 个数字等
11蜂鸣器相当于开发板的小喇叭,可以发出"滴滴"等声音
12光敏&热敏电阻两种类型的电阻,分别可以用来测量光强度和温度
13步进电机接口预留给电机的接口
148 个 LED 灯8 个 LED 小灯,可实现指示灯,流水灯等效果
15增强型 51 单片机 STC12开发板上的另外一块 51 单片机,比主角功能更强大,第一块用来学习,这一块用来做项目,学习、实践两不误
162.4G 无线模块接口为 2.4G 无线通信模块预留的接口,无线通信距离可以达到 1-2Km,大大扩展了开发板的功能
173 个独立按键3 个按键,可以当做开发板的输入设备,相当于迷你版键盘
18继电器接口开发板上集成了继电器,这个接口预留给用户接线用的,可以用来控制 220V 设备的开关。因此,可以通过开发板來控制各种类型的家用电器
19电源端子预留了 5V 和 3.3V 的电源端子,可以用来给其他设备供电
20WiFi 模块接口WiFi 模块接口,接上 WiFi 模块,开发板可以轻松上网冲浪
+

表 1-1 主板元器件说明

+', '2022-06-13 22:35:34', '2022-06-13 22:35:34'); + +INSERT INTO forest.forest_bank (id, bank_name, bank_owner, bank_description, created_by, created_time) +VALUES (1, '社区中央银行', 1, '社区中央银行', 1, '2020-11-26 21:24:19'); +INSERT INTO forest.forest_bank (id, bank_name, bank_owner, bank_description, created_by, created_time) +VALUES (2, '社区发展与改革银行', 1, '社区发展与改革银行', 1, '2020-11-26 21:31:27'); + + +INSERT INTO forest.forest_bank_account (id, id_bank, bank_account, account_balance, account_owner, created_time, + account_type) +VALUES (2, 1, '100000002', 1207980.00000000, 2, '2020-11-26 21:37:18', '1'); +INSERT INTO forest.forest_bank_account (id, id_bank, bank_account, account_balance, account_owner, created_time, + account_type) +VALUES (1, 1, '100000001', 997500000.00000000, 1, '2020-11-26 21:36:21', '1');