2010-02-10 5 views
3

J'ai utilisé pour être un développeur et un concepteur db à temps partiel, mais ça fait de nombreuses années et je réapprends ...Meilleure pratique: comment insérer dans plusieurs tables via la couche métier et la couche de données?

Je construis une application web et ai une personne (en fait "Profile") avec un certain nombre de tables enfants qui ont des relations N: N avec ma table Person, par ex. FavoriteSports musicalinstruments ArtisticSkills

Après avoir lu des tutoriels excellents d'accès aux données de Scott Mitchell à www.asp.net, je veux concevoir mon application w/bien pensé d'un accès aux données (en utilisant le tableau adaptateurs) et Business Logic (en utilisant des classes) Calques.

Là où je me suis accroché est dans la conception des Classes et des adaptateurs de table. L '"unité de travail" ici est quelque chose de plus comme un objet de la vie réelle, qui ne s'aligne pas directement avec mes classes basées sur des tables ou des objets d'accès aux données. Donc, je suppose que ce que je vois est un besoin de construire une classe modélisée non pas autour des tables, mais plutôt autour de l'objet de la vie réelle (mon profil + FavoriteSports + MusicalInstruments + ArtisticSkills).

Ce que je cherche vraiment, c'est un bon livre ou un site web qui décrit comment faire cela. Plus précisément, comment puis-je créer une classe qui prend en charge ces enregistrements enfants (en tant que collections?). Je pense que je comprends les concepts - j'ai juste besoin de quelques conseils sur la façon de le mettre en pratique. La meilleure réponse que je pourrais demander me pointerait sur un livre (C#, de préférence) qui va dans tout cela dans toutes ses complexités - à peu près sûr que je suis loin des livres "débutants" avec cela.

Merci -

-Pete

Répondre

1

Malheureusement, un livre pourrait ne pas aider. Je vous recommande d'aller à ces livres pour revenir à la compréhension des deux mondes de RDBMS et OO. Les tables et les entités commerciales ne peuvent pas être une carte 1: 1!

Patterns of Enterprise Application Architecture

Domain-Driven Design: Tackling Complexity in the Heart of Software

.NET Domain-Driven Design with C#: Problem - Design - Solution

espoir qui aide.

+0

Je suis allé avec un tas de livres - utilisé - d'Amazon ... - C# Design Class Manuel: codage des classes efficaces - Programmation Microsoft Visual C# 2005: La classe de base Library (Pro-développeur) - C# Design Classe Manuel - Motifs de conception: éléments d'un logiciel orienté objet réutilisable Espérons que, entre les quatre, j'obtiendrai ce que je recherchais.Merci pour les suggestions. -Pete – user270677

+0

Ce sont d'excellents livres, mais je ne pense pas qu'ils vous donnent une idée sur le travail de bout en bout pour un logiciel. Bonne chance! – Perpetualcoder

0

Il serait clair si vous pouvez suivre ce un outil ORM comme présente.

L'essentiel est de penser moins en termes de tables et plus sur les objets.

On dirait que vous auriez une classe de personne avec des collections d'enfants pour une classe ou une interface de compétences:

public class Person 
{ 
    public IList<Skill> Skills { get; set; } 
} 

Il est un grand nombre à plusieurs, mais vous ne pourriez pas besoin d'une compétence pour garder suivi du nombre de personnes qui y sont associées.

Questions connexes