J'ai une base de données avec des tables pour chaque entité du système. par exemple. Personnière a des colonnes personnalisées, nom, homestateid. Il existe également une table pour «données de référence» (c'est-à-dire des états, pays, toutes les devises, etc.) données qui seront utilisées pour remplir les zones de liste déroulante. Cette table de référence sera également utilisée pour que la personne familiale soit une clé étrangère à la table de référence. P>
Dans l'application C #, nous avons des interfaces et des classes définies pour l'entité. par exemple. PersonImployationClass: iPersonInterface. La raison d'avoir les interfaces pour chaque entité est que la classe d'entité réelle stockera des données différemment en fonction d'un produit tiers pouvant changer. P>
La question est que l'interface doit avoir des propriétés pour nom, homestatedid et homestaténame (qui seront extraites de la table de référence). Ou si l'interface n'expose-t-elle pas la structure de la base de données, c'est-à-dire pas chez l'habitat et avoir un nom, un nom d'accueil? p>
3 Réponses :
Je dirais que vous êtes sur la bonne voie lorsque vous pensez aux noms de propriété! p>
Modèle vos cours comme vous le feriez dans le monde réel. strong> p>
Oubliez les modèles de base de données et la dénomination des conventions de clés StateID et étrangères en général. Une personne a une ville, pas un Villeid. p>
Ce sera jusqu'à votre couche de données pour mapper et peupler les propriétés de ces objets au moment de l'exécution. Vous devriez avoir la liberté d'exprimer votre intention et la représentation des objets «du monde réel» dans votre code, et ne pas être bloqué à votre mise en œuvre de la DB. P>
de toute façon est acceptable, mais ils ont tous les deux leurs avantages et leurs inconvénients. P>
La première voie (les entités ont des identifiants) sont analogues au modèle La deuxième manière (les entités reflètent davantage une structure réelle) sont plus analogues à un cadre d'entité C'est un gros choix et ne devrait pas être pris à la légère. Cela dépend vraiment de vos exigences et de vos besoins de votre projet, qui va le consommer. P>
Cela peut aider à séparer le design un peu. p>
Pour chaque entité, utilisez deux classes: p>
Comme @womp mentionné, si votre entité persistance ne sera qu'au lieu de bases de données, fortement em> considérer l'utilisation d'une orje afin que vous ne finissez pas de rouler le vôtre. p>