手动感受数据库的时刻-让我们亲自用Rails创建“记忆网络服务”

直接创建数据库,体验Web服务的记忆,连接和搜索等。创建Post模型并学习如何与数据库互动的时间。

밤치 38

我们刚刚将数据库(DB)比作图书馆、记忆、图书管理员、网络等隐喻进行了解释。现在让我们亲眼看看它是如何运作的

Web服务是如何存储信息的,如何记忆,如何再次检索和展示,以及如何相互连接

通过直接使用Rails来实践,现在是让我们亲身感受的时候。


第1部分。“Web服务的记忆”创建

让我们创建一个Post(帖子)模型

Web的记忆始于记录。我们将记录称为“文章(Post)”。

在终端中:

rails generate model Post title:string body:text
rails db:migrate

这两行非常简单。

  • “我们将创建一个名为Post的结构,其中包含title和body两个记忆空间。”

  • “然后我们将在实际的DB记忆仓库中反映这个结构。”

现在Rails已经创建了图书馆的“书架(Post表)”,并且可以放置“title, body”两格书籍。


第2部分。通过Rails控制台直接与数据库对话

让我们在图书馆的书架上放一本书

终端:

rails console

然后尝试放一本书。

Post.create(title: "我的第一篇文章", body: "已保存到Rails DB中!")

一按回车键,您就在Web服务的“记忆”中记录了第一条数据。

比起迄今为止编写的任何代码,这一行要强大得多。

因为这是创建了永不消失的记忆


第3部分。数据库是“永不遗忘的空间”

让我们再次询问Rails控制台。

Post.all

然后Rails对DB说。

“从Post书架上取出所有书籍!”

然后DB毫无差错地检索出了刚刚保存的数据。

这就是Web服务的记忆,永不遗忘的空间

无论您关闭再打开服务器,重新启动计算机,一周后再回来,那个记忆仍然保留。


第4部分。“精心整理的图书馆”体验

ID、created_at、updated_at是图书馆的分类系统

让我们再次查看刚刚创建的Post。

post = Post.first
post.id
post.created_at
post.updated_at

您现在已经知道了。

  • id = 书号

  • created_at = 创建日期

  • updated_at = 最后修改日期

DB会精心整理所有记录,即使您没有操作。

这些记录是构建结构化存储大量数据的基础。

DB不仅仅是一个空间,而是精心整理的图书馆


第5部分。“快速查找数百万本书的图书管理员”体验

通过条件查找书籍

Post.where(title: "我的第一篇文章")

Rails告诉DB。

“只找出标题为‘我的第一篇文章’的书籍。”

DB立即找到并展示出来。

无论数据有10个、1,000个还是100万个,都能精确查找。

因为DB拥有在庞大图书馆中即时查找的超凡图书管理员

您刚刚亲身体验了这种能力。


第6部分。创建“相互连接的智能网络”

创建评论(Comment)并与Post关联

Web服务真正强大的时刻是数据开始相互连接时。

例如,让我们尝试允许在博客文章(Post)上添加评论(Comment)。

rails generate model Comment body:text post:references
rails db:migrate

这个模型这样说。

  • “评论有内容(body),”

  • “将保存属于哪篇文章(post_id)的数据”

告诉Rails关系

app/models/post.rb

class Post < ApplicationRecord
  has_many :comments
end

app/models/comment.rb

class Comment < ApplicationRecord
  belongs_to :post
end

现在Post和Comment将成为完全连接的智能网络


第7部分。创建实际连接的数据

在控制台:

post = Post.first
post.comments.create(body: "这是第一条评论!")
post.comments.create(body: "第二条评论!")

现在让我们阅读评论。

post.comments

DB清楚地知道。

  • 哪个评论属于哪个Post

  • 一个帖子有多少评论

  • 这些评论何时保存的

当数据相互连接时,Web服务最终成为有机系统


第8部分。现在您明白了为什么DB是Web服务的“心脏”

在短暂的练习中,您经历了以下内容。

Web服务的记忆

→ 存储和检索数据的过程

永不遗忘的空间

→ 通过Post.create创建的数据将永久保留

精心整理的图书馆

→ id、timestamps等自动整理功能

快速查找数百万本书的图书管理员

→ 通过Post.where搜索所需数据

智能网络

→ 通过设置Post ↔ Comment关系,创建数据之间的连接

Web服务的心脏

→ 记忆 + 关系 + 搜索都在DB中进行

您现在已经理解了,为什么Web服务无法在没有数据库的情况下存在,以及处理数据库就是处理Web服务


现在读者心中萌生的想法

跟随到这里的读者一定会有以下感受。

“等一下…我也可以

创建自己的博客了?”

“看起来我和朋友们可以一起做一个TODO应用?”

“Web服务…比想象中更有趣?”

这就是我们追求的觉醒时刻

当数据触手可及时,

Web服务不再是遥远未来的技术,

而是现在在我手中创造的现实。

而Rails则这样向您耳语。

“现在决定要创建什么服务。

接下来我会帮助你。”