I USED to be a developer and part-time db designer, but it’s been many years and I’m re-learning…
I’m building a web app and have a Person (actually “Profile”) table with a number of child tables which have N:N relationships with my Person table, e.g.
FavoriteSports
MusicalInstruments
ArtisticSkills
After reading through Scott Mitchell’s excellent data access tutorials at http://www.asp.net, I want to design my app w/ well-thought-out Data Access (using Table Adapters) and Business Logic (using Classes) Layers.
Where I get hung up is in designing the Classes and Table Adapters. The “Unit of work” here is something more like a real-life object, that doesn’t align directly with my table-based classes or data access objects. So I guess what I’m seeing is a need to build a class modeled not around the tables, but instead around the real-life object (my Profile+FavoriteSports+MusicalInstruments+ArtisticSkills).
What I’m really looking for is a good book or web site that describes how to do this. Specifically, how can I build a class that supports these child records (as collections?). I think I understand the concepts – I just need some guidance on how to put it into practice.
The best answer I could ask for would point me at a book (C#, preferrably) that goes into all this in all its complexities – pretty sure I’m way past the “Beginners” books with this.
Thanks –
-Pete
Unfortunately one book might not help. I recommend you go for these books to get back to understanding the two worlds of RDBMS and OO. Tables and business entities may not be a 1:1 map!
Patterns of Enterprise Application Architecture
Domain-Driven Design: Tackling Complexity in the Heart of Software
.NET Domain-Driven Design with C#: Problem – Design – Solution
Hope that helps.