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

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

밤치 224

我们刚刚将数据库(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则这样向您耳语。

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

接下来我会帮助你。”

Comments

Add Comment

Your email won't be published and will only be used for reply notifications.

Get notified of new posts

We'll email you when Bamchi Blog publishes new content.

Your email will only be used for new post notifications.