les bases de données

pourquoi ?

Les bases de données permettent de stocker des donner de manière persistente et organisée.

package main

import (
"fmt"
"io"
"os"
)

func main() {
    willDie := "i'm gonna die ;-;"
    willLive := "yey i'm alive !"

    f, _ := os.Create("alive.txt")
    f.WriteString(willLive)
    f.Close()

    // la donnée stockée est dans cette variable va disparaitre,
    // car la variable est juste "in-memory", et existe le temps du programme seulement
    fmt.Println(willDie)

    // la donnée stockée dans cette variable va survivre,
    // car on ne la stocke pas juste dans un variable mais dans fichier,
    // donc de la mémoire persistante
    f, _ = os.Open("alive.txt")
    fc, _ := io.ReadAll(f)
    fmt.Println(string(fc))
}

Maintenant 1 fichier pour 1 donnée ça marche bien,
mais imagine pour des milliers ou des millions de données,
et t'as des collègues et des futurs employés qui vont utiliser ce que t'as fait dans 10 ans.

L'avantage énorme d'une base de donnée comparé à des fichiers ou d'autres formats de donnée comme du json,
c'est que tu peux lui dire de râler ou refuser si quelqu'un essaie de stocker du texte dans une colonne réservée aux chiffre (par exemple),
que tu peux facilement faire des références à d'autres données,
et que c'est bien foutu en général.

sql

Le langage des bases de donnée relationelles, c'est la sql.

Les bases de données ont toutes un client sql par défaut en cli,
mais c'est possible d'utiliser un autre client comme adminer pour avoir une interface plus sympa.

autres infos

Après, c'est aussi totalement possible de mal utiliser une db.
Déjà, quand tu stocke des données,
tu dois bien réfléchir au schéma, parce qu'il est quasi inchangeable par la suite.
Et le schéma doit respecter la 3ème forme normale, sinon c'est la hess.

Une base de donnée relationelle suit le modèle relationnel.
Les bases de données les plus populaires sont généralement des bases de données relationnelles.

T'as pas besoin d't'embêter avec une base de donnée quand tu fais genre des jeux,
tu peux totalement faire le fichier de sauvegarde avec du json.
Mais les bases de données sont massivement utilisées pour le web, en backend.
Certaines applis locales utilisent aussi une base de donnée embarquée, comme du sqlite.

<--