📏 Règles de contraintes de données (DB + Django) #1227
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📏 Règles de contraintes de données (DB + Django)
Carte Notion : Qualité de données: ajout de contraintes (URL, email) au niveau DB avec CHECK
🎯 Pourquoi cette proposition?
pour plus d'infos, en court:📜 Contenu de la proposition
⭐ Principes mis en avant
🔢 On a très peut de données et donc on peut ajouter des contraintes
📖 L’utilisation principale des données est la lecture via la carte où les contraintes d’écriture ne s’appliquent pas
🚀 Les contraintes vont peut être même amener des gains de performances en supprimant du bruit (ex: table d’affichage qui ne contient que ~80% d’acteurs affichés)
🎯 Pourquoi cette proposition?
⚖️ Options évaluées
💡 Décision préconisée
Pour le traitement des données on décide de:
🚧 Exemple de mise en oeuvre
On priorise les problèmes de qualité de données par ROI (retour sur investissement: ratio de valeur métier vs. effort technique)
Disons que le 1er point identifié est la présence de 20% d’acteurs non-actifs dans la table d’affichage
(5 min) On fait un SQL correctif pour supprimer les nons actifs de la table
(5 min) On ajoute la contrainte suivante:
⇒ Et voilà, plus d’acteurs non-actifs 🙂 La prochaine fois que quelqu’un / qu’une pipeline essaye d’ajouter des acteurs non-actifs à la table d’affichage l’opération sera interdite, la tâche échouera, on aura identifié le coupable et on pourra résoudre le problème à la source
On répète les étapes ci-dessus, champ par champ en fonction du ROI, en étalant les tâches au besoin (ex: chaque semaine on gère 1 contrainte)
Par exemple on se dit qu’un code postal doit être normalisé à 5 chiffres: