Bonjour,

je viens d'avoir une conversation avec mon supérieur et j'aimerais votre avis sur le concept POO...

Je possède 2 tables:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
TABLE PERSONNES(
ID,
NOM,
COUNTRY_ID)
 
TABLE COUNTRIES(
ID,
NOM)
Selon moi, je créé donc la classe "Country.cs" de cette façon

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public class Country
public int id {get;set;)
public string nom{get;set;}
et la classe "Personne.cs" de cette manière

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
public class Personne
public int id {get;set;)
public string nom{get;set;}
public Country country{get;set;}
et après avoir initialisé tout ça (Je vous épargne le code), idéalement, je déclare un pays ma personne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Country country = new Country ("USA");
Personne pers = new Personne("Jean", country);
et je suis tout content d'avoir mon objet et de pouvoir obtenir le pays de ma personne comme ceci...


Maintenant, mon supérieur m'a signifié que la "manière" de créer les classes n'était pas correct, car une classe doit représenter la base de données -->

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
public class Personne
public int id {get;set;)
public string nom{get;set;}
public int countryId{get;set;}
et que ensuite, nous pouvions rechercher le nom du pays en faisant une requête du style:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Country country = SELECT * FROM COUNTRIES WHERE ID = pers.countryId;
ce qui selon moi est une aberration que de faire "matcher à l'identique" les champs de la base de données avec les classes objets...

Ai-je perdu tous mes concepts ou... autre chose ???

Merci de vos lumières...