diff --git a/banque.md b/banque.md index ad487a2..91ec8ca 100644 --- a/banque.md +++ b/banque.md @@ -141,13 +141,6 @@ erDiagram decimal share } - exchange_rate { - date date PK - text currency_code PK - decimal rate - } - - operation { bigint id PK bigint transaction_id FK @@ -169,6 +162,146 @@ erDiagram ### 3. Les opérations +### 4. Les transactions + + +Chaque opération comporte au moins : + +* un **compte concerné** ; +* une **date** ; +* un **montant** ; +* un **sens** (débit ou crédit). + + +## **Méthode 1 : montant relatif (positif/négatif)** + +### Exemple + +| id | compte | date | montant | +| -- | ------ | ---------- | ------- | +| 1 | 123 | 2025-11-06 | +200.00 | +| 2 | 123 | 2025-11-07 | -50.00 | + +### Principe + +On stocke un seul champ `montant`. + +* **Crédit** → montant positif +* **Débit** → montant négatif + +### ✅ Avantages + +* **Simple à manipuler** pour les calculs (sommes, soldes, agrégations). +* Pas besoin de colonne supplémentaire pour le sens. +* Représente naturellement le comportement du solde d’un compte. + +### ❌ Inconvénients + +* Le **signe a une signification métier** implicite → risque d’erreur d’interprétation. +* **Moins lisible** pour les utilisateurs finaux ou pour des exports comptables. +* Pas toujours compatible avec les règles de la **comptabilité en partie double** (où débit et crédit doivent être visibles séparément). + +--- + +## **Méthode 2 : deux colonnes (débit / crédit)** + +### Exemple + +| id | compte | date | debit | credit | +| -- | ------ | ---------- | ----- | ------ | +| 1 | 123 | 2025-11-06 | 0.00 | 200.00 | +| 2 | 123 | 2025-11-07 | 50.00 | 0.00 | + +### Principe + +Deux colonnes numériques, l’une pour le débit, l’autre pour le crédit. +Une seule des deux contient une valeur non nulle. + +### ✅ Avantages + +* Très **clair visuellement** et **conforme aux usages comptables**. +* Facilite les **exports vers des logiciels comptables**. +* On peut facilement filtrer les débits et crédits séparément. + +### ❌ Inconvénients + +* **Redondance potentielle** (une des deux colonnes sera toujours à zéro). +* Les calculs de soldes nécessitent des **expressions plus complexes** : + `SUM(credit) - SUM(debit)` +* Risque d’incohérence si les deux colonnes contiennent des valeurs remplies par erreur. + + +## **Méthode 3 : montant absolu + colonne sens ('D' / 'C')** + +### Exemple + +| id | compte | date | montant | sens | +| -- | ------ | ---------- | ------- | ---- | +| 1 | 123 | 2025-11-06 | 200.00 | C | +| 2 | 123 | 2025-11-07 | 50.00 | D | + +### Principe + +Le montant est toujours positif. +Le sens est indiqué par une lettre (`D` ou `C`). + +### ✅ Avantages + +* **Lisible** et **intuitif** : correspond au vocabulaire métier. +* Facilite la lecture humaine et les exports comptables. +* Pas d’ambiguïté sur le signe numérique. + +### ❌ Inconvénients + +* Nécessite une **jointure logique** du sens pour les calculs : + `SUM(CASE WHEN sens='C' THEN montant ELSE -montant END)` +* Moins direct pour les traitements purement mathématiques. +* L’usage de lettres rend le **stockage un peu moins compact** (mais négligeable en pratique). + + +## **Méthode 4 : montant absolu + colonne sens numérique (1 / -1)** + +### Exemple + +| id | compte | date | montant | sens | +| -- | ------ | ---------- | ------- | ---- | +| 1 | 123 | 2025-11-06 | 200.00 | 1 | +| 2 | 123 | 2025-11-07 | 50.00 | -1 | + +### Principe + +Le montant est toujours positif, et une colonne numérique `sens` vaut `1` (crédit) ou `-1` (débit). + +### ✅ Avantages + +* **Compact et performant** pour les calculs : + `SUM(montant * sens)` donne directement le solde. +* Moins d’ambiguïté qu’un signe caché dans le montant. +* Combine la **rigueur du modèle mathématique** avec la **clarté du stockage absolu**. + +### ❌ Inconvénients + +* **Moins lisible** pour un utilisateur non technique. +* Moins standard pour la comptabilité classique (on préfère `D` / `C`). +* Nécessite une convention claire sur la signification de `1` et `-1`. + +--- + +## Synthèse comparative + +| Méthode | Structure | Lisibilité | Facilité calculs | Conformité comptable | Risque d'erreur | +| ------- | ---------------------- | ---------- | ---------------- | -------------------- | --------------- | +| 1 | montant relatif (+/-) | ★☆☆ | ★★★ | ★☆☆ | Moyen | +| 2 | débit / crédit séparés | ★★★ | ★☆☆ | ★★★ | Faible | +| 3 | valeur + sens 'D'/'C' | ★★★ | ★★☆ | ★★★ | Faible | +| 4 | valeur + sens 1/-1 | ★★☆ | ★★★ | ★★☆ | Moyen | + +--- + + + +### 5. Les devises + ```mermaid erDiagram person {