sd,
Rather then a GOF pattern you may want to consider an Enterprise Application
Architecture Pattern.
http://www.martinfowler.com/books.html#eaa
It sounds like you want to define a Domain Model for your business objects
http://www.martinfowler.com/eaaCatalog/domainModel.html
Then use Data Mappers to move your data between objects & database.
http://www.martinfowler.com/eaaCatalog/dataMapper.html
Martin has a couple of other patterns that you may find equally useful.
Hope this helps
Jay
"sd" <sd@discussions.microsoft.com> wrote in message
news:1AD396E6-E54D-43BC-83BA-0D44447D29C9@microsoft.com...
| Iam not worried about the sql model, these are business objects that will
| have to represented in object model since there's a lot more beyond
Datasets
| here. I was looking for object models here.
|
| Thanks
|
| "alantolan@users.com" wrote:
|
| > Do you need to use GOF patterns?
| >
| > Would storing the data in tables and running queries suffice? (Use
| > DataSet, Datatables as in memory stores if you don't want to use
| > external storage)
| >
| >
| > 1) Role Table
| > 2) Person Table (one attribute is Type : emp/con)
| > 3) Project Table
| > 4) ProjectTeam Table
| >
| >
| >
| > The ProjectTeam contains
| >
| > ProjectID (FK to Project)
| > PersonID (FK to Person )
| > RoleID (FK to Role)
| >
| >
| > This pretty much tells you all the information (though you need to join
| > to the other tables to filter by person type or to get more details
| > like Person Name or Role Name)
| >
| >
| >
| > Which Emps (or Cons) are on given Project?
| >
| > SELECT
| > Person.Name
| > FROM
| > Person, ProjectTeam
| > WHERE
| > Person.Id = ProjectTeam.PersonID
| > AND Person.Type = <emp or con>
| > AND ProjectTeam.ProjectID = <Project's ID>
| >
| > if you just want a list of all the people on a project, leave out the
| > Person.Type criterion
| >
| >
| >
| > On which projects and in which roles is a given person working
| >
| > SELECT
| > Project.Name, Person.Name, Role.Name
| > FROM Role INNER JOIN
| > (Project INNER JOIN
| > (Person INNER JOIN ProjectTeam ON Person.ID =
| > ProjectTeam.PersonID)
| > ON Project.ID = ProjectTeam.ProjectID)
| > ON Role.ID = ProjectTeam.RoleID
| > WHERE Person.ID= <Person's ID>;
| >
| >