[resolu]problème avec inner join

Mammouth du PHP | 790 Messages

15 oct. 2011, 18:14

voila, si j'ai bien compris:
donc les caractéristique retourne dans les chiens,
j'ai fait une table "race" mais en fait je ne comprend pas trop l'interet ??? pourquoi ne pas faire comme pour les caracteristique et mettre dans la table chien ?
taille, poid ou couleur des yeux, sont des indices pris une fois adult donc il ne changerons pas...
+------------------+                                                        +-------------------+
| user             |                                                        | sport             |
+-------------+----+                                                        +--------------+----+
| id_user     | PK |                   +-------------------+                | id_sport     | PK |                
| username    |    |                   | chien             |                | id_chien     | FK |
| password    |    |                   +--------------+----+                | id_user      |    |
| email       |    |                   | id_chien     | PK |                | sport        |    | 
| avatar      |    |-------------------| id_user      | FK |                | signup_date  |    |  
| signup_date |    |                   | nom          |    |                +-------------------+
+-------------+----+                   | affixe       |    |                           |
        |                   ,----------| race         |    |                           |                                                                                                      
        |                   |          | sex          |    |                       +-------------------+ 
        |                   |          | livre        |    |                       | chien_has_sport   |              +-------------------+
		|					|		   | lof          |    | 					   +--------------+----+              | photo             |
		|					|		   | url          |    |-----------------------| id_chien     | PK |			  +-------------------+	    
		|					|		   | commmentaire |    |                       | id_sport     | PK |			  | id_photo     | PK |			      
		|					|		   | couleur      |    |                       +-------------------+			  | id_chien     | FK |							  
		|					|		   | poid         |    |----------------------------------------------------------| nom_photo    |    |							  
	+------------------+	|		   | taille       |    |                             +-------------------+ 		  +-------------------+											  
	| vote             |----'		   | naissance    |    |                         	 | race              |									  
	+-------------+----+ 			   | signup_date  |    |-----------------------------+--------------+----+		    			  
    | id_quest    | PK |               +--------------+----+                             | id_race      | PK |    
	| id_user     | PK |                        |                                        | id_chien     | FK |
	| id_chien    | PK |                        |                                        | nom-race     |    |
	| note        |    |                        |                                        +-------------------+
	| signup_date |    |                        |            
	+-------------+----+                        |
	       |                                    |                                    +-------------------+ 
	       |                                    |                                    | resultat          | 
	       |                                    |                                    +-------------------+ 
	       |                                +-------------------+                    | id_chien     | PK |
           |                                | chien_has_resultat|                    | id_user      | FK | 
           |                                +--------------+----+                    | discipline   |    | 
           |                                | id_chien     | PK |--------------------| niveau       |    | 
           |                                | id_sport     | PK |                    | place        |    |
		   |								+-------------------+					 | participant  |    | 
		   |																		 | total        |    | 
		   |																		 | club         |    | 
		   |																		 | ville        |    |   
		   |																		 | date         |    |                        
		   |																		 +--------------+----+
+-------------------+          
| questionnaire     |   
+--------------+----+   
| id_quest     | PK |
| libelle      |    |  
+--------------+----+   
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

15 oct. 2011, 18:40

Parce que, comme je l'ai mentionné, un chien a une et une seule race, mais une race peut compter 1 à n individus. On ne doit donc pas considérer race comme une propriété de chien. Il y a néanmoins un lien et on mettra quand même un point de repère.

Par rapport à ton croquis, je voudrais que tu me dises :
  • Pourquoi ajoutes-tu une clé étrangère id_chien dans la table sport ?
  • Pourquoi mets tu une clé étrangère id_chien dans la table race ? Réalises-tu que tu inverses du coup les relations possible, à savoir qu'un chien peut avoir 1 à n races, mais une race appartient à un et un seul chien, tu ne pourras donc avoir dans ton système au maximum qu'un seul malinois, un seul berger belge, un seul caniche doré, etc... ?
  • Tu as ajouté une table chien_has_resultat avec en clé primaire id_chien et id_sport, mais sans la lier à la table sport, et ta table résultat a id_chien en clé primaire au lieu d'un id_resultat : ensuite, que font donc les colonne id_chien et id_user dans cette table ?
Là, on va essayer d'avancer sur la compréhension de cette notion de clé étrangère qui de toute évidence t'échappe : encore une fois, j'ai l'impression que tu essayes d'aller trop vite en pensant au traitement, à la programmation, donc tu tentes de lier les choses pour pouvoir retrouver les éléments dont tu auras besoin... :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 19672 Messages

15 oct. 2011, 19:14

Reprenons les données entre chien et sport.

Un chien appartient à un club;
Il y a des compétitions organisées par des clubs;
Un chien participe à une compétition pour un sport donné;

Dans ta table « resultat » (que je renommerais ici en fait competition), tu as ajouté id_chien et id_user : autant id_chien est logique, autant id_user ne l'est pas : tu le retrouves par transitivité à travers le chien puisque dans chien tu as déjà la clé étrangère id_user qui indique le propriétaire du chien.
Attention, ça ne veut pas dire pour autant que tous les user doivent être propriétaires d'un chien. user peut aussi bien indiquer le propriétaire d'un chien que le membre du jury qui attribue des votes à une question.

Là par contre, je me demande si il ne me manque pas une information et je me demande dans quelle mesure il existe ou non un lien entre le vote et la compétition ?? Si les votes concernent directement la compétition, alors le modèle que j'ai proposé est complètement faux et le tien également du reste. Et du coup le modèle pourrait se simplifier bien davantage.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

15 oct. 2011, 19:48

non, les résultat (compétition) n'on rien a voir avec les votes, c'est une table pour faire des calcul sur un certain genre de compétitions...
entre nous: est-ce que tu connais ce genre de chiens ?
+------------------+                                                                                              +-------------------+
| user             |                                                        +-------------------+                 | sport             |
+-------------+----+                                                        | chien_has_sport   |                 +--------------+----+
| id_user     | PK |                   +-------------------+                +--------------+----+                 | id_sport     | PK |
| username    |    |                   | chien             |                | id_chien     | PK |-----------------| libelle      |    |              
| password    |    |                   +--------------+----+----------------| id_sport     | PK |                 +-------------------+          
| email       |    |                   | id_chien     | PK |                | id_user      |    |                             
| avatar      |    |-------------------| id_user      | FK |                | valeur       |    |                             
| signup_date |    |                   | nom          |    |                | signup_date  |    |                                                   
+-------------+----+                   | affixe       |    |                +--------------+----+                                                  
        |                   ,----------| race         |    |                                                                                                                               
        |                   |          | sex          |    |                                                                                       
        |                   |          | livre        |    |                                                          +-------------------+        
		|					|		   | lof          |    |----------------------------------------------------------| photo             |       
		|					|		   | url          |    |                    			                          +-------------------+	       
		|					|		   | commmentaire |    |                       			                          | id_photo     | PK |			   
		|					|		   | couleur      |    |                                                          | id_chien     | FK |							  
		|					|		   | poid         |    |                                                          | id_user      | FK |							  
	+------------------+	|		   | taille       |    |                             +-------------------+ 		  | nom_photo    |    |	       
	| vote             |----'		   | naissance    |    |                         	 | race              |		  | signup_date  |    |	       
	+-------------+----+ 			   | signup_date  |    |-----------------------------+--------------+----+		  +-------------------+        
    | id_quest    | PK |               +--------------+----+                             | id_race      | PK |                 					
	| id_user     | PK |                        |                                        | id_chien     | FK |                 						
	| id_chien    | PK |                        |                                        | valeur       |    |                 						
	| valeur      |    |                        |                                        +-------------------+                                      						
	| signup_date |    |                        |                                                                              						
	+-------------+----+                        |                                                                              						
	       |                                    |                                    +-------------------+                     						
	       |                                    |                                    | resultat          |                     						
	       |                                    |                                    +-------------------+                     						
	       |                                    |                                    | id_result    | PK |                     						
           |                                    |                                    | id_user      | FK |                     						
           |                                    |                                    | id_chien     | FK |                     						
		   |                                    |                                    | discipline   |    |                     						
           |                                    '------------------------------------| niveau       |    |                     						
           |                                                                         | place        |    |                     						
		   |								                    					 | participant  |    |                     						
		   |										  								 | total        |    |                     						
		   |										 								 | club         |    |                     						
		   |										 								 | ville        |    |                     						
		   |										 								 | date         |    |                     						
           |																		 +--------------+----+                     						
+-------------------+                                                                                                        						
| questionnaire     |                                                                                                        						
+--------------+----+                                                                                                        						
| id_quest     | PK |                                                                                                         						
| libelle      |    |                                                                                                        						
+--------------+----+  
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

15 oct. 2011, 20:04

Non, je n'y connais pas grand chose en chiens. Par contre en bases de données ... ;)

Bon, relis mes précédentes réponses pour les autres questions que j,ai laissé en suspend : j'essaye de t'aider à comprendre la notion de clé étrangère et je ne suis pas certain d'avoir bien réussi mon coup sur ce point. Donc il faut que j'arrive à comprendre tes raisonnements sur certains choix pour te remettre sur la route : dans ton dernier croquis, il y a toujours une erreur dans la table race et une clé étrangère qui n'a rien à faire là, mais justement, pourquoi à ton avis ? Essaye de faire un peu le tour du reste, on va avancer et à terme ton modèle a des chances d'être solide tout en te laissant la souplesse nécessaire a`des évolutions ultérieures :)

Après, je te montrerai avec les modifications que j'ai apportées dans MySQL WorkBench, mais ça ne sert à rien que je te montre un truc tout fait si tu n'en maitrises pas un minimum le sens, ça risque de t'égarer plus qu'autre chose.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

15 oct. 2011, 20:35

comme ca alors mais sans certitude, pourtant j'ai déjà tout relu 40 fois et je relis encore...
+------------------+                                                                                              +-------------------+
| user             |                                                        +-------------------+                 | sport             |
+-------------+----+                                                        | chien_has_sport   |                 +--------------+----+
| id_user     | PK |                   +-------------------+                +--------------+----+                 | id_sport     | PK |
| username    |    |                   | chien             |                | id_chien     | PK |-----------------| libelle      |    |              
| password    |    |                   +--------------+----+----------------| id_sport     | PK |                 +-------------------+          
| email       |    |                   | id_chien     | PK |                | id_user      |    |                             
| avatar      |    |-------------------| id_user      | FK |                | valeur       |    |                             
| signup_date |    |                   | nom          |    |                | signup_date  |    |                                                   
+-------------+----+                   | affixe       |    |                +--------------+----+                                                  
        |                   ,----------| race         |    |                                                                                                                               
        |                   |          | sex          |    |                                                                                       
        |                   |          | livre        |    |                                                          +-------------------+        
		|					|		   | lof          |    |----------------------------------------------------------| photo             |       
		|					|		   | url          |    |                    			                          +-------------------+	       
		|					|		   | commmentaire |    |                       			                          | id_photo     | PK |			   
		|					|		   | couleur      |    |                                                          | id_chien     |    |							  
		|					|		   | poid         |    |                                                          | id_user      |    |							  
	+------------------+	|		   | taille       |    |                             +-------------------+ 		  | nom_photo    |    |	       
	| vote             |----'		   | naissance    |    |                         	 | race              |		  | signup_date  |    |	       
	+-------------+----+ 			   | signup_date  |    |-----------------------------+--------------+----+		  +-------------------+        
    | id_quest    | PK |               +--------------+----+                             | id_race      | PK |                 					
	| id_user     | PK |                        |                                        | id_chien     |    |                 						
	| id_chien    | PK |                        |                                        | valeur       |    |                 						
	| valeur      |    |                        |                                        +-------------------+                                      						
	| signup_date |    |                        |                                                                              						
	+-------------+----+                        |                                                                              						
	       |                                    |                                    +-------------------+                     						
	       |                                    |                                    | resultat          |                     						
	       |                                    |                                    +-------------------+                     						
	       |                                    |                                    | id_result    | PK |                     						
           |                                    |                                    | id_user      |    |                     						
           |                                    |                                    | id_chien     |    |                     						
		   |                                    |                                    | discipline   |    |                     						
           |                                    '------------------------------------| niveau       |    |                     						
           |                                                                         | place        |    |                     						
		   |								                    					 | participant  |    |                     						
		   |										  								 | total        |    |                     						
		   |										 								 | club         |    |                     						
		   |										 								 | ville        |    |                     						
		   |										 								 | date         |    |                     						
           |																		 +--------------+----+                     						
+-------------------+                                                                                                        						
| questionnaire     |                                                                                                        						
+--------------+----+                                                                                                        						
| id_quest     | PK |                                                                                                         						
| libelle      |    |                                                                                                        						
+--------------+----+  
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

15 oct. 2011, 23:00

Presque. voici un premier corrigé, je te laisse l'analyser, tu vas sûrement t'interroger sur le pourquoi de certaines suppression par rapport à ton modèle, je ta laisse regarder, pose ensuite les questions.
+------------------+                                        +-------------------+         +-------------------+
| user             |                                        | chien_has_sport   |         | sport             |
+-------------+----+                                        +--------------+----+         +--------------+----+
| id_user     | PK |           +-------------------+        | id_chien     | PK |         | id_sport     | PK |
| username    |    |           | chien             |        | id_sport     | PK |>--------| libelle      |    |
| password    |    |           +--------------+----+        | valeur       |    |         +-------------------+
| email       |    |           | id_chien     | PK |-------<| signup_date  |    |
| avatar      |    |----------<| id_user      | FK |        +--------------+----+
| signup_date |    |           | id_race      | FK |
+-------------+----+           | nom          |    |        +-------------------+
        |               ,------| affixe       |    |        | photo             |
        |               |      | race         |    |        +-------------------+
        |               |      | sex          |    |        | id_photo     | PK |
        |               |      | livre        |    |-------<| id_chien     | FK |
        |               |      | lof          |    |        | nom_photo    |    |
        |               |      | url          |    |        | signup_date  |    |
        |               |      | commmentaire |    |        +-------------------+
        A               |      | couleur      |    |
+------------------+    |      | poids        |    |        +-------------------+
| vote             |>---'      | taille       |    |        | race              |
+-------------+----+           | naissance    |    |        +--------------+----+
| id_quest    | PK |           | signup_date  |    |>-------| id_race      | PK |
| id_user     | PK |           +--------------+----+        | nom_race     |    |
| id_chien    | PK |                    |                   +-------------------+
| valeur      |    |                    |
| signup_date |    |                    |
+-------------+----+                    A
       V                       +-------------------+
       |                       | resultat          |
       |                       +-------------------+
       |                       | id_result    | PK |
+-------------------+          | id_chien     | FK |
| questionnaire     |          | discipline   |    |
+--------------+----+          | niveau       |    |
| id_quest     | PK |          | place        |    |
| libelle      |    |          | participant  |    |
+--------------+----+          | total        |    |
                               | club         |    |
                               | ville        |    |
                               | date         |    |
                               +--------------+----+
Modifié en dernier par Cyrano le 15 oct. 2011, 23:13, modifié 1 fois.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

15 oct. 2011, 23:07

en regardant comme ça, je ne comprend pas la différence entre le "id_chien " de résultat et le "id_chien" de photo un est FK l’autre pas ?
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

15 oct. 2011, 23:12

en regardant comme ça, je ne comprend pas la différence entre le "id_chien " de résultat et le "id_chien" de photo un est FK l’autre pas ?
Tu as raison, J,ai fait un oubli, id_chien dans Photo est bien une FK. Je vais corriger mon croquis.

Pose-toi la question suivante dans chacun des deux cas : Combien de fois un des cotés peut être lié à l'autre dans la relation et dans quel sens ?

Un chien peut avoir plusieurs photos sur sa fiche, mais une photo ne représente toujours qu'un seul et unique chien.
Le résultat concerne un seul et unique chien, mais un chien peut participer plusieurs fois successives et donc avoir plusieurs résultats.

Si tu saisis ce système de relation et pourquoi on met une clé étrangère d'un coté ou de l'autre, tu auras pratiquement abouti :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

16 oct. 2011, 14:27

alors après de longues de lecture, je comprend que PK correspond a la colonne principale d'une table et FK correspond a qui a une PK d'une autre table, FK doit vérifie l’existence de de l'id d'un PK pour ne pas enregistrer un chien qui ne serait pas inscrit dans la table et le colonne PK...
pas très clair tout ça:
PK = colonne importante d'une table
FK = se référer a la colonne importante d'une autre table (PK)
est ce que c'est ça ?
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

16 oct. 2011, 14:38

Schématiquement, c'est exactement ça.

Disons, si on veut reformuler, que la clé primaire est une donnée système de la base de données qui identifie une ligne de façon unique. C'est pour ça que d'une part il faut éviter de s'en servir comme d'une donnée « signifiante » qui elle pourrait être modifiée sans que ça affecte le reste des données. C'est également l'intérêt de l'AUTO_INCREMENT de MySQL qui permet de ne pas avoir à se soucier de sa valeur lors d'une insertion, MySQL gère ça très bien. D'autres SGBDs n'ont pas cette particularité même si en général on peut le contourner pour obtenir le même comportement.
La clé étrangère identifie une ligne qui fait référence à la ligne d'une autre table, donc comme tu l'as effectivement dit, on ne peut pas entrer une ligne en indiquant comme valeur de clé étrangère une référence inexistante dans la table référencée.

Les clés sont des index dans une base : partant de là, le SGBD ne les traite pas tout à fait simplement en les stockant comme les autres valeurs non indexées, il peut y avoir certains blocages pour maintenir la cohérence dans les données de l'ensemble des tables, ou encore d'autres opérations pour rendre le tout plus efficace.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

16 oct. 2011, 14:55

je comprend aussi que ce système permet aussi de gagner beaucoup de temps sur les rechercher dans la bdd puisque mysql n'aura besoin de ne comparer que de simple chiffes...

je comprend aussi que mon site presque fini avant de poster ici est a refaire entièrement...

si c'est ok , je crois commence a comprendre, malgré ça je te demande quand même ce qu'il me reste a faire sur le croquis, cette défragmentation dans me tête me perturbe un peut, jusque maintenant toutes mes infos étaient sur la même ligne et j’allais chercher les infos de la ligne requise, rien de plus. Aujourd'hui et comme tu me la fait comprendre ce système n'ira pas loin et donc je ne veux pas continuer comme ça mais honnêtement je n'ai pas encore tout compris...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

16 oct. 2011, 15:01

Ben n'hésite pas à poser les questions qui te viennent à l'esprit lorsqu'un point n'est pas clair.

Comme tu l'as effectivement compris, ce sera beaucoup plus efficace pour récupérer les données. Tu auras toujours à faire certaines jointures pour collecter des ensembles de données provenant de diverses tables, mais globalement, ce sera infiniment plus simple à gérer au niveau des ajouts de données : pas de calcul tordu à faire pour construire des chaines compliquées qu'il faudra décrypter ensuite pour pouvoir les exploiter dans tes pages.

Et en fait, tes pages ne changeront pas fondamentalement, ce qui devra changer, c'est la manière de manipuler les données, pour les collecter ou bien pour les insérer/modifier/supprimer. Dans la durée, ton système tiendra la route beaucoup plus longtemps et sera beaucoup plus facile à faire évoluer.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

16 oct. 2011, 15:45

ok, je comprend aussi qu'il y a des tables ou j'enregistre des infos sur les chiens ( a son sujet ) mais aussi des tables qui contienne des infos pour le chien de façon a alimenter son enregistrement...
donc on peut dire qu'il y a 2 sorte de table dans mon cas: les table qui contienne l'info a afficher sur le site et les tables qui contienne des valeurs pour mettre dans les premières et leurs rôle peuvent être inversé, tout dépend de la requête...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

16 oct. 2011, 16:07

Disons pour tenter de faire plus clair : tu as différentes données indépendantes. Les chiens en sont une, les questionnaires en sont une autre même s'il y a éventuellement un lien à établir entre les deux. Photos, c'est est une autre : c'est certain que le lien est assez évident entre chien et photo, mais le fait de séparer les deux vient de ce qu'un chien peut faire l'objet de 0 à n photos alors qu'une photo concerne un chien et un seul. Si on mettait une ligne photo dans la table chien, tu ne pourrais en mettre qu'une seule, ou alors il faudrait que tu fasse le même genre de chose que tu avais au départ avec les votes : des chaines sérialisées pour enregistrer plusieurs photos sur la même ligne dans une seule colonne. Note bien que ça peut fonctionner aussi mais les limites risquent d'apparaître et tu serais obligée de mettre une taille de colonne importante pour garder de la marge. avec une table indépendante, ça ne dépend plus du nombre de photos mais des capacités de stockage de la machine où se trouve la base de données, tu avoueras que ça fait une sacrée marge ;)

Le principe général de la modélisation de base de données, c'est qu'on part en général d'un cahier des charges, ou ce qui en tient lieu, sorte de document plus ou moins complet qui décrit l'application et ses fonctionnalités. de ce document, on isole les mots-clés, ce sont les données qu'on va devoir manipuler. On les répartis ensuite de façons à identifier d'une part des entités et d'autre part des propriété de telle ou telle entité selon le lien qui peut être établi entre deux mots :
  • 0:0 : L'élément 1 n'a aucun lien direct avec l'élément 2;
  • 0:1 : L'élément 1 est lié 0 ou une seule fois à l'élément 2 : l'élément 2 est probablement une propriété de l'élément 1;
  • 1:1 : L'élément 1 est lié une et une seule fois à l'élément 2 : l'élément 2 est une propriété de l'élément 1;
  • 0:n : l'élément 1 est lié 0 à n fois à l'élément 2 : l'élément 1 est probablement une entité indépendante de l'élément 2 ou une propriété d'une autre entité;
  • 1:n : l'élément 1 est lie au moins 1 fois et au maximum n fois à l'élément 2 : même chose que le précédent mais il existe au moins une correspondance
On définit de la sorte les propriétés d'une entité. On rajoute ensuite un identifiant à chaque entité, ce sera la clé primaire de la table, et ensuite on met en place les clés étrangères ou, selon le cas, certaines tables relationnelles.

C'est comme la programmation : on part d'un problème global et on l'atomise en élément basiques beaucoup plus faciles à traiter individuellement.

Là, j'ai conscience que ce sont des concepts qui peuvent te paraître un peu abstrait, mais en les manipulant, ces concepts te sembleront de plus en plus évidents avec du temps et de la pratique.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: