La base de données - Faisons directement un "service Web mémorisant" avec Rails

Créez votre propre base de données et découvrez l'expérience de stockage, de connexion et de recherche des services Web. Apprenez comment créer un modèle de publication avec Rails et interagir avec la base de données.

밤치 41

Nous avons récemment expliqué la base de données (DB)

en utilisant des métaphores telles que bibliothèque, mémoire, bibliothécaire, réseau.

Maintenant, essayons de le voir bouger devant nos yeux.

Pour un service Web,

comment il stocke l'information,

comment il se souvient,

comment il récupère et affiche à nouveau,

comment il se connecte les uns aux autres,

En suivant directement avec Rails

il est temps de ressentir avec votre corps.


Partie 1. Création de la "mémoire du service Web"

Créons le modèle de Post (publication)

La mémoire du Web commence par un enregistrement.

Appelons l'enregistrement "Post".

Dans le terminal:

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

Ces deux lignes disent quelque chose de très simple.

  • "Nous allons créer une structure appelée Post avec des espaces mémoire pour title et body."

  • "Et nous allons refléter cette structure dans le véritable entrepôt de mémoire qu'est la DB."

Maintenant, Rails a créé l'étagère de la bibliothèque (table Post)

et vous pouvez y insérer un livre à deux cases, "title, body".


Partie 2. Entrer dans la console Rails et parler directement à la DB

Mettons un livre sur l'étagère de la bibliothèque

Dans le terminal:

rails console

Et essayons d'ajouter un livre.

Post.create(title: "Mon premier article", body: "Enregistré dans la DB de Rails!")

Au moment où vous appuyez sur Entrée,

vous avez enregistré la première donnée dans la "mémoire" du service Web.

Cette seule ligne est bien plus puissante

que tout autre code que vous avez créé jusqu'à présent.

Parce que vous avez créé

une mémoire qui ne disparaît pas.


Partie 3. La DB est un "espace qui n'oublie jamais"

Demandons à nouveau à la console Rails.

Post.all

Alors Rails dit à la DB.

"Apporte-moi tous les livres sur l'étagère des Posts!"

Et la DB récupère les données que vous venez de sauvegarder

sans la moindre erreur.

C'est exactement

la mémoire du service Web, un espace qui n'oublie jamais.

Même si vous éteignez et rallumez le serveur,

redémarrez l'ordinateur,

ou revenez une semaine plus tard,

cette mémoire reste intacte.


Partie 4. Découvrir une "bibliothèque soigneusement organisée"

ID, created_at, updated_at sont le système de classification de la bibliothèque

Revoyons le Post que nous venons de créer.

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

Maintenant, vous savez.

  • id = numéro du livre

  • created_at = date de création du livre

  • updated_at = date de dernière modification

La DB organise soigneusement

toutes les données que vous n'avez pas triées.

Ces enregistrements

sont la base de la structuration et du stockage de nombreuses données.

La DB n'est pas simplement un espace,

c'est une bibliothèque soigneusement organisée.


Partie 5. Expérience d'un "bibliothécaire rapide trouvant des millions de livres"

Essayons de trouver un livre en fonction de certains critères

Post.where(title: "Mon premier article")

Rails dit à la DB.

"Trouve-moi seulement les livres dont le titre est 'Mon premier article'."

La DB trouve et affiche instantanément les résultats.

Que vous ayez 10, 1 000,

ou 1 million de données,

elle trouve exactement ce que vous cherchez.

Parce que la DB a

un bibliothécaire surhumain qui peut trouver instantanément dans une immense bibliothèque.

Vous venez de

mettre en pratique cette compétence.


Partie 6. Créer un "réseau intellectuel interconnecté" vous-même

Créons des commentaires liés à un Post

Le moment où un service Web devient vraiment puissant

est lorsque les données commencent à être interconnectées.

Par exemple,

permettons d'ajouter des commentaires à un article de blog.

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

Ce modèle dit:

  • "Les commentaires ont un contenu (body) et"

  • "Je vais enregistrer des données liées à un article (post_id)"

Informons Rails de la relation

app/models/post.rb

class Post < ApplicationRecord
  has_many :comments
end

app/models/comment.rb

class Comment < ApplicationRecord
  belongs_to :post
end

Maintenant, Post et Comment sont

un réseau intellectuel parfaitement connecté.


Partie 7. Créons réellement des données connectées

Dans la console:

post = Post.first
post.comments.create(body: "Premier commentaire!")
post.comments.create(body: "Deuxième commentaire!")

Maintenant, lisons les commentaires.

post.comments

La DB sait exactement.

  • Quel commentaire appartient à quel Post

  • Combien de commentaires sont attachés à un article

  • Quand ces commentaires ont été enregistrés

Lorsque les données sont connectées,

le service Web devient enfin un "système organique".


Partie 8. Maintenant, vous comprenez pourquoi la DB est le "cœur" du service Web

Dans le court exercice que vous avez suivi jusqu'à présent,

vous avez expérimenté ce qui suit.

La mémoire du service Web

→ Processus de stockage et de récupération des données

Espace qui n'oublie jamais

→ Les données créées avec Post.create sont conservées de manière permanente

Bibliothèque soigneusement organisée

→ Fonctionnalités de tri automatique telles que id, timestamps

Un bibliothécaire rapide trouvant des millions de livres

→ Recherche de données souhaitées avec Post.where

Réseau intellectuel

→ Configuration des relations Post ↔ Comment pour créer des liens entre les données

Le cœur du service Web

→ La mémoire + les relations + la recherche se font toutes dans la DB

Vous comprenez maintenant

pourquoi un service Web ne peut pas exister sans une base de données,

et que manipuler la DB, c'est manipuler le service Web.


Maintenant, une pensée germe dans l'esprit du lecteur

Le lecteur qui a suivi jusqu'ici ressentira sûrement cela.

"Attends... si je peux faire ça,

je pourrais probablement créer mon propre blog, non?"

"Il semble que je pourrais aussi créer une application TODO à partager avec des amis?"

"Les services Web... semblent plus accessibles que je ne le pensais?"

C'est exactement le moment de l'éveil que nous recherchions.

Au moment où les données deviennent tangibles,

le service Web n'est plus une technologie lointaine

mais une réalité créée ici et maintenant, entre nos mains.

Et Rails vous murmure ceci.

"Décidez maintenant quel service vous voulez créer.

Ensuite, je vous aiderai."