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."