Note this answer is incomplete, as I am trying to discover more about the question
I've wrote some code to try and work out the 1-to-many relationships from what is presented.
Is this how it is structured at the moment?
public class Organisation
{
public List<Workgroup> Workgroups { get; set; }
public List<OrganisationRecord> Records { get; set; }
}
public class Workgroup
{
public List<User> Users { get; set; }
public List<WorkgroupRecord> Records { get; set; }
}
public class User
{
public List<UserRecord> Records { get; set; }
}
From what I am understanding - a record comes in 3 forms:
- OrganisationRecord
- WorkgroupRecord
- UserRecord
And these would look something like, like a Table Per Hierarchy:
public abstract class Record { }
public class OrganisationRecord : Record {}
public class WorkgroupRecord : Record {}
public class UserRecord : Record {}