PostgreSQL plutôt que MySQL
Nous préconisons PostgreSQL pour du RDBMS. Cette base de données est orientée objets, ce qui permet de pousser un peu plus loin les contraintes sur les formats de données contrairement à une MySQL/MariaDB.
À titre d'exemples comme MySQL n'est pas nativement orienté objets :
- Il a fallu attendre MySQL v8 en 2018 pour enfin supporter les
ENUM
(sachant que MySQL est sorti en 1995) ; - La gestion d'une colonne en
uuid
n'est pas native :- Si vous voulez que ce soit lisible n'importe quand pour un humain il faut forcer le type à
string
… mais du coup ce n'est pas optimisé en stockage et pour les jointures ; - Si vous voulez optimiser la taille vous devez définir le type
BINARY(16)
mais au moment de faire vosSELECT
vous ne verrez rien de lisible. Pour ça il faut préciser le helperBIN_TO_UUID()
à chaque endroit où il y a vos UUIDs, etUUID_TO_BIN()
au moment de vosINSERT
. Économisez votre temps… utilisez PostgreSQL ;
- Si vous voulez que ce soit lisible n'importe quand pour un humain il faut forcer le type à
- Vous ne pouvez pas créer de "custom type" où vous définiriez vous-même la structure de données attendue.
Cela peut vous paraître exagéré mais quand vous faites des migrations de données (car oui cela arrive), avoir une base qui sait un minimum ce qui peut ou ne peut pas être fait aide grandement. Surtout quand vous travaillez sur des Go de données.