La base de données est un énorme "placard".

La base de données est simplement une 'armoire bien rangée'. Essayez de comprendre la base de données en stockant et en récupérant des souvenirs avec Rails.

밤치 34

La base de données est un énorme "placard" : Expérience de stockage et de récupération de la mémoire avec Rails

Lorsque nous créons un service Web pour la première fois, il y a un concept qui est le plus déroutant.

"Où sont stockées les informations que j'ai saisies... exactement?"

Pour comprendre la base de données, vous n'avez pas besoin de concepts grandioses. La base de données est simplement un "placard bien rangé".

  • Le placard est une table(table)

  • Un tiroir est un enregistrement(record)

  • Les cases dans le placard sont des colonnes(column)

  • Les types de placards (Post, Utilisateur, etc.) sont des modèles(model)

  • L'action d'ouvrir et de fermer le placard est une requête(query)

Une fois que vous avez saisi cette métaphore, la base de données n'est plus une entité complexe, mais un concept très physique qui peut être compris du bout des doigts.

Maintenant, essayons de le créer directement avec Rails.


Partie 1. Créer un "placard (table Post)"

Dans le terminal :

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

Cette commande équivaut à dire :

"Je vais créer un placard appelé Post.

Dans le placard, dois-je créer deux cases ?

Une pour le titre (case titre),

Une pour le corps (case contenu)."

Rails prend cette commande et installe un nouveau placard (table Post) dans une grande pièce appelée DB.

Chaque tiroir (enregistrement) de ce placard contiendra toujours deux cases fixes : titre et corps.

Maintenant, vous êtes prêt à enregistrer.


Partie 2. Créer un "tiroir (enregistrement)" et le mettre dans le placard

Accédez à la console Rails.

rails console

Et avec le code ci-dessous, créez un tiroir (Post) et placez-le dans le placard.

Post.create(title: "Premier article", body: "Stocké dans le placard de la base de données!")

Ce qui se passe ici :

  • Dans le placard Post

  • Dans la case titre, "Premier article"

  • Dans la case corps, "Stocké dans le placard de la base de données!"
    en tant que contenu,
    un nouvel tiroir (enregistrement) est ajouté.

Ce tiroir ne disparaîtra jamais. Même si vous éteignez et rallumez le serveur, il restera tel quel.

C'est pourquoi la base de données est "la mémoire du Web".


Partie 3. "Ouvrir le placard" :

Examinons les tiroirs stockés.

Post.all

Rails demande à la base de données :

"Placard Post, s'il te plaît, sors tous les tiroirs qui s'y trouvent."

La base de données vous montrera exactement les tiroirs que vous avez placés.

C'est le pouvoir de l'"espace inoubliable".


Partie 4. "Placard intelligent qui organise automatiquement la structure de l'étagère"

Voyons-en un en utilisant Post.first.

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

Lorsque vous placez un tiroir, la base de données organise automatiquement :

  • id (numéro du tiroir)

  • created_at (quand il a été placé)

  • updated_at (quand il a été modifié)

Elle stocke même ces méta-informations pour vous.

Ce n'est pas seulement un placard, mais un placard intelligent et bien organisé.


Partie 5. "Les humains n'ont pas besoin de fouiller des milliers de tiroirs"

La base de données vous trouve instantanément comme un bibliothécaire ultra-rapide

Par exemple, si vous voulez trouver un tiroir avec le titre "Premier article" :

Post.where(title: "Premier article")

Avec cette seule ligne, la base de données trouvera exactement le tiroir correspondant parmi des milliers.

C'est comme si un "bibliothécaire" comprenait instantanément le numéro du tiroir, l'emplacement et les attributs.

Grâce à cette fonction de recherche rapide, la base de données est responsable de la vitesse et de la précision des services Web.


Partie 6. "Réseau intellectuel connectant les tiroirs"

Connectons les commentaires (Comment) au placard Post

Entrez la commande suivante.

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

Cela peut être interprété comme suit :

"Créez également un placard (table Comment) pour stocker les commentaires.

Dans le placard, il y a une case appelée 'body',

et rappelez-vous également à quel placard (Comment) ce tiroir appartient."

Rails crée automatiquement une case appelée post_id dans le placard Comment pour enregistrer l'information de connexion "Ce tiroir appartient à ce placard Post".

C'est comme coller un autocollant sur le côté du tiroir indiquant "Ce tiroir appartient au Post #1".


Part 7. Informez Rails des relations

app/models/post.rb

class Post < ApplicationRecord
  has_many :comments
end

app/models/comment.rb

class Comment < ApplicationRecord
  belongs_to :post
end

Dire à Rails ceci :

"Le placard Post peut contenir plusieurs tiroirs Comment."

"Le tiroir Comment doit appartenir à un tiroir Post."

Maintenant, la base de données connaît les relations entre les tiroirs.

Cette structure est le réseau intellectuel qui compose le service Web.


Partie 8. Connectons réellement les données

Dans la console :

post = Post.first
post.comments.create(body: "Cet article est amusant!")
post.comments.create(body: "Deuxième commentaire!")

Puis vérifiez les commentaires.

post.comments

Les résultats affichent les deux nouveaux commentaires que vous venez de créer.

En voyant cela, vous réalisez :

  • La base de données ne fait pas que stocker

  • Elle connecte des informations différentes

  • Pour créer un seul réseau intellectuel.

Grâce à cette connexion, le service Web fonctionne comme un "organisme" en action.


Partie 9. Maintenant, vous comprenez pourquoi la base de données est le

"Cœur du service Web"

En suivant directement jusqu'à présent,

vous avez expérimenté précisément l'essence de la base de données.

La mémoire du service Web

→ Vous pouvez stocker et récupérer des données.

Espace inoubliable

→ Même après un redémarrage, Post et Comment restent intacts.

Placard bien organisé

→ Cases structurées, métadonnées automatiquement organisées (id, horodatages)

Bibliothécaire qui trouve instantanément des millions de tiroirs

→ Recherche immédiate avec une condition where

Réseau intellectuel connecté

→ Configuration des relations Post ↔ Comment

Cœur du service Web

→ Stockage + recherche + relations = toutes les fonctionnalités du Web

Vous pouvez maintenant créer et manipuler ces éléments vous-même.


Et dans l'esprit du lecteur, une pensée commence à germer

"Attends... Suis-je vraiment capable de créer un service Web?"

"Je pourrais même créer mon propre blog!"

"Devrais-je essayer de créer un service TODO avec mes amis?"

"Je comprends comment mes données sont stockées, connectées et récupérées!"

Une fois que vous avez dépassé ce moment d'éveil,

le Web n'est plus seulement un "monde à utiliser".

Le Web devient le monde que vous créez.