Bonjour.
J'ai une question qui est la base du Java, mais je me la pose car je vois les différents codages : lequel utiliser?
Je vais prendre un exemple simple avec un pays, qui contient des villes, elles-mêmes qui contiennent des quartiers
Soit une base de données :
En JAVA, je vois différents codages :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Table Pays : - champ pays_id - champ pays_nom Table Ville : - champ ville_id - champ ville_nom - champ ville_id_paysParent (provenant de A) Table quartier : - champ quartier_id - champ quartier_nom - champ quartier_id_villeParent (provenant de B)
le 1er :
Le problème de cette représentation est que lors du chargement des pays depuis la base de données, il faut aller lire les villes, puis les quartiers en cascade pour alimenter la liste de Ville de l'objet pays.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 class Pays { int pays_id String pays_nom List<ville> listeVilles } class Ville { int ville_id String ville_nom List<quartier> listeQuartiers } class quartier : { int quartier_id String quartier_nom }
--> En fonction de la structure de la base, on peut donc faire un grand nombre de requête en cascade, sachant que chaque objet va charger son objet "voisin". mais l'avantage est qu'une fois chargé, on a tout.
le 2eme :
Cette représentation correspond à la base de données. Mais il y a toujours des requêtes en cascade car lors de la recherche des quartiers, on va lire la ville, qui va lire le pays...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 class Pays { int pays_id String pays_nom } class Ville { int ville_id String ville_nom Pays paysParent } class quartier : { int quartier_id String quartier_nom Ville villeParent }
idem l'avantage est qu'une fois chargé, on a tout.
la 3eme :
Cette représentation ne lit rien en cascade car les objets ne contiennent pas d'objet en attribut mais que des "id", mais à charque fois qu'on a besoin d'un objet en relation avec celui sur lequel on travaille, on est obligé de le charger.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 class Pays { int pays_id String pays_nom } class Ville { int ville_id String ville_nom int id_paysParent } class quartier : { int quartier_id String quartier_nom int id_villeParent }
Pour moi, cela ressemble moins à de "l'objet".
Quelle est donc la norme en terme de codage?
Et en cas de solution 1 ou 2, comment savoir à quel moment s’arrêter de lire les voisins?
Merci d'avance.
Johann
Partager