Objet Relationnelle

cs_Myke
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
2 février 2010
- 3 déc. 2007 à 18:18
NHenry
Messages postés
14930
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 mai 2022
- 4 déc. 2007 à 16:37
Je contruis une application VB. Ma base de données est relationnelle 1 -> N et j'aimerais savoir comment construire des class en conséquence correctement. Voici comment je reussi à présent mais j'imagine qui existe plus propre

Voici ma syntaxe pour obtenir le id

Dim MyId as integer = clsBase.Relation.GetById(1).Id

public class clsBase
   public Shared readonly property Relation as clsRelation
      return new Relation
   end property
end class
--------------------------------------------------------
public class clsRelation
  public function Add as Boolean
    ....   
 end function 
 public function GetById(Integer) as MyObject
      return new MyObject 
end function 

   public function GetALL...
   .....
   end function
end class
--------------------------------------------------------
public class MyObject
   public property Id 
   ....
   end property
end class
------------------------------------------------------------

Est-ce que vous avez des suggestions ? Est-ce que c'est la facon adéquate ? Ne vous attardez pas au passage de parametre ect.. Je sais que c'est pas complet. Mais vous comprenez la logique de ce que je veux faire !

Myke

8 réponses

NHenry
Messages postés
14930
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 mai 2022
161
4 déc. 2007 à 13:05
Bonjour

Pour le listage des liens :
en .net 1 : ArrayList
en .net3 et + : List(of T)

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
NHenry
Messages postés
14930
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 mai 2022
161
4 déc. 2007 à 13:06
Bonjour

Au lieu de .net3 et +, il fallait lire .net2 et +

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
cs_Myke
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
2 février 2010

4 déc. 2007 à 15:39
Est-ce que j'utilise la bonne technique est- ce que tu as un exemple à me montrer

Myke
0
NHenry
Messages postés
14930
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 mai 2022
161
4 déc. 2007 à 15:56
Bonjour

Je considère que tu es sur .NET 2 et +.

class ClsBase

private mLstRelations asnew list(of ClsRelation)

publicfunction Add(byval pRelation as ClsRelation) asboolean
mLstRelation.add(pRelation)
ReturnTrue'à toi de voir pour le traitementendfunction
publicdefaultreadonlyproperty Item(byval pindex asinteger) as ClsRelation
GetReturn mLstRelation(pindex)
endGetENDPROPERTY
publicreadonlyproperty Count asintegerGetreturn mLstRelation.Count
endgetendproperty
publicfunction Remove(byval pIndex asinteger) asboolean
mLstRelation.removeAt(pIndex)
returnTrue'A toi de voir pour le traitementendfunction
publicfunction Remove(byval pRelation as ClsRelation) asboolean
mLstRelation.remove(pRelation)
returnTrue'A toi de voir pour le traitementendfunction
endclass

Ceci n'est qu'un exemple, à toi de voir comment l'adapter à tes besoins.

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry
Messages postés
14930
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 mai 2022
161
4 déc. 2007 à 15:57
Bonjour

Bon le code est très mal passé :

class ClsBase

private mLstRelations asnew list(of ClsRelation)

publicfunction Add(byval pRelation as ClsRelation) asboolean
mLstRelation.add(pRelation)

ReturnTrue'à toi de voir pour le traitement
endfunction

publicdefaultreadonlyproperty Item(byval pindex asinteger) as ClsRelation

Get
Return mLstRelation(pindex)

endGet
ENDPROPERTY

publicreadonlyproperty Count asinteger
Get
return mLstRelation.Count

endget
endproperty

publicfunction Remove(byval pIndex asinteger) asboolean
mLstRelation.removeAt(pIndex)

returnTrue'A toi de voir pour le traitement
endfunction

publicfunction Remove(byval pRelation as ClsRelation) asboolean
mLstRelation.remove(pRelation)

returnTrue'A toi de voir pour le traitement
endfunction

endclass

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
NHenry
Messages postés
14930
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 mai 2022
161
4 déc. 2007 à 15:58
Bonjour

Bon pour le code décidément :(
class ClsBase

  private mLstRelations as new list(of ClsRelation)
  
  public function Add(byval pRelation as ClsRelation) as boolean
    mLstRelation.add(pRelation)
    Return True 'à toi de voir pour le traitement
  end function

  public default readonly property Item(byval pindex as integer) as ClsRelation
    Get
      Return mLstRelation(pindex)
    end Get
  END PROPERTY

  public readonly property Count as integer
    Get
      return mLstRelation.Count
    end get
  end property

  public function Remove(byval pIndex as integer) as boolean
    mLstRelation.removeAt(pIndex)
    return True 'A toi de voir pour le traitement
  end function

  public function Remove(byval pRelation as ClsRelation) as boolean
    mLstRelation.remove(pRelation)
    return True 'A toi de voir pour le traitement
  end function

end class, ----
(Coloration syntaxique automatique par Kenji)

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
cs_Myke
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
2 février 2010

4 déc. 2007 à 16:10
Je vois ou ce que tu veux en venir. Mais ce je cherche c'est comment modéliser des base de données relationnelle.

tb_Operateurs -->    tb_Operateur_Prefence --> tb_Preference
PK------------|        PK                                   |---  PK
Nom               |----- FK_Operateur                  |   Description
Prenom                     FK_Preference-----------|

Comment tu ferais ca avec des classe pour obtenir

Operateurs(Operateur_Pk).Preference.Add(Preference_Pk)
Operateurs(Operateur_Pk).Preferene(Operateur_Preference_Pk).Description

Tu vois ou je veux en venir ? Est-ce qu'il existe un pattern une norme ?

Myke
0
NHenry
Messages postés
14930
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 mai 2022
161
4 déc. 2007 à 16:37
Bonjour

Avec un dictionnaire (Collection.Generic.dictionnary(of ...)) je pense que tu a tout en main.

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0