La base de datos es un gran 'armario'.

La base de datos es simplemente un 'armario ordenado con precisión'. Experimenta almacenar y recuperar recuerdos con Rails para comprender la base de datos.

밤치 29

La base de datos es un gran 'armario': experiencia de guardar y recuperar recuerdos con Rails

Cuando creamos un servicio web por primera vez, hay un concepto confuso.

"¿Dónde se guarda la información que ingreso... exactamente?"

Para entender la base de datos, no se necesita un concepto grandioso.
La base de datos es simplemente un 'armario' organizado con precisión.

  • El armario es una tabla (table)

  • Un compartimento del armario es un registro (record)

  • Los compartimentos dentro del armario son columnas (column)

  • Los tipos de armarios (Post, User, etc.) son modelos (model)

  • Abrir y cerrar el armario es una consulta (query)

Una vez que se captura esta metáfora,
la base de datos ya no es una entidad difícil,
sino un concepto muy físico que se entiende con los dedos.

Ahora, vamos a crear directamente con Rails.


Parte 1. Creación del 'armario (tabla Post)'

En la terminal:

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

Esta orden es equivalente a decir:

"Voy a crear un armario llamado Post.
¿Podrías crear dos compartimentos dentro del armario?
Uno es el título (compartimento de título),
y el otro es el cuerpo (compartimento de contenido)."

Rails recibe esta orden y
instala un nuevo armario (tabla Post) en la gran sala llamada DB.

Cada compartimento (registro) en ese armario
siempre tendrá dos compartimentos fijos: título y cuerpo.

Ahora estamos listos para guardar.


Parte 2. Crear un 'compartimento (registro)' y ponerlo en el armario

Ingresemos a la consola de Rails.

rails console

Y con el siguiente código,
creamos un compartimento (Post) y lo ponemos en el armario.

Post.create(title: "Primer post", body: "¡Guardado en el armario de la base de datos!")

Lo que sucede aquí:

  • Dentro del armario Post,

  • en el compartimento del título está "Primer post"

  • en el compartimento del cuerpo está "¡Guardado en el armario de la base de datos!"
    se agrega un nuevo compartimento (registro).

Este compartimento nunca desaparecerá.
Permanecerá incluso si apagas y enciendes el servidor.

Esa es la razón por la cual la base de datos es la 'memoria del web'.


Parte 3. 'Abrir el armario':

Veamos lo que hay guardado.

Post.all

Rails le dice a la base de datos:

"Armario Post, por favor, saca todos los compartimentos que hay dentro."

Entonces, la base de datos muestra exactamente los compartimentos que hemos puesto.

Esta es la fuerza de un 'espacio que nunca olvida'.


Parte 4. 'Armario inteligente que organiza automáticamente la estructura del estante'

Veamos uno sacando con Post.first.

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

Cuando se coloca un compartimento en la base de datos, automáticamente:

  • id (número de compartimento)

  • created_at (cuándo se colocó)

  • updated_at (cuándo se modificó)

Estos metadatos se organizan y se guardan.

Esto no es solo un armario,
sino un armario inteligente y organizado.


Parte 5. 'No es necesario revisar miles de compartimentos'

La base de datos encuentra rápidamente como un bibliotecario de alta velocidad

Por ejemplo,
si solo quieres encontrar el compartimento con el título "Primer post":

Post.where(title: "Primer post")

Con esta línea,
la base de datos encuentra exactamente
el compartimento correcto entre miles.

Es como si un "bibliotecario" inmediatamente
supiera el número de compartimento, la ubicación y las propiedades.

Gracias a esta función de búsqueda rápida,
la base de datos es responsable de la velocidad y precisión del servicio web.


Parte 6. 'Red intelectual que conecta compartimentos'

Vamos a conectar los comentarios (Comment) con el armario Post

Ingresamos el siguiente comando.

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

Esto se puede interpretar como:

"Crea un armario para guardar comentarios (Comment).
Dentro del armario, hay un compartimento llamado 'cuerpo',
y también recuerda a qué compartimento (Post) pertenece este compartimento (Comment)."

Rails automáticamente crea un compartimento llamado post_id en el armario Comment
para guardar la información de conexión
"Este compartimento pertenece a ese compartimento Post".

Es como pegar una etiqueta en el costado del compartimento
que dice "Este compartimento pertenece al Post #1".


Parte 7. Informemos a Rails sobre la relación

app/models/post.rb

class Post < ApplicationRecord
  has_many :comments
end

app/models/comment.rb

class Comment < ApplicationRecord
  belongs_to :post
end

Decirle a Rails de esta manera es equivalente a:

"El armario Post puede contener varios compartimentos de comentarios."
"El compartimento de comentarios debe pertenecer a un compartimento Post."

Ahora, la base de datos
conoce la relación entre los compartimentos.

Esta estructura es
la red intelectual que compone el servicio web.


Parte 8. Conectemos realmente los datos

En la consola:

post = Post.first
post.comments.create(body: "¡Este post es divertido!")
post.comments.create(body: "¡Segundo comentario!")

Y veamos los comentarios.

post.comments

En los resultados de la salida,
se encuentran los dos comentarios recién creados.

Al ver esto, te das cuenta de que:

  • La base de datos no solo guarda

  • sino que conecta información diferente

  • creando una red intelectual.

Gracias a esta conexión,
el servicio web funciona como un "organismo" en funcionamiento.


Parte 9. Ahora sientes por qué la base de datos es el

'corazón del servicio web'

Hasta ahora, siguiendo directamente,
has experimentado con precisión la esencia de la base de datos.

La memoria del servicio web

→ Puedes guardar y recuperar datos.

Espacio que nunca olvida

→ Aunque reinicies, Post y Comment permanecen igual.

Armario organizado con precisión

→ Compartimentos estructurados, metadatos organizados automáticamente (id, timestamps)

Un bibliotecario que encuentra millones de datos al instante

→ Búsqueda rápida con condiciones where

Red intelectual conectada

→ Configuración de relación Post ↔ Comment

El corazón del servicio web

→ Almacenamiento + búsqueda + relación = todas las funciones web

Todo esto,
ahora puedes crearlo y manejarlo tú mismo.


Y en la mente del lector, comienzan a surgir los siguientes pensamientos

"Espera... ¿Realmente soy capaz de crear un servicio web?"

"¿Podría crear mi propio blog?"

"¿Debería intentar hacer un servicio de tareas por hacer con mis amigos?"

"¡Entiendo cómo se guardan, conectan y recuperan los datos que ingreso!"

Después de este momento de despertar,
la web ya no es simplemente un "mundo para usar".
La web se convierte en un mundo que tú creas.