문제

누군가가 작곡 관계를 모델링하는 최선의 방법을 이해하도록 도와 줄 수 있습니까?

예를 들어 많은 일정을 가질 수있는 학생이 있다면 대략적으로 만듭니다.

class Student
{
  prop long Pk { get; set; }
  prop string Name { get; set; }
  prop List<Schedule> Schedules { get; set; }
}

class Schedule
{
  prop string Semester { get; set; }
  prop List<Course> Courses{ get; set; }
}

줄 아래 어딘가에 나는 일정 대상이있을 수 있으며 어떤 학생이 속한 지 식별하고자합니다. 글을 쓸 수 있기를 원합니다 Schedule.Student.Name, 대가로 학생의 이름을받습니다. 내 스케줄 개체에 학생 속성을 추가합니까?

내 응용 프로그램은 CRUD 기능을 수행하기 위해 학생 PK를 내 스케줄 객체에 전달했습니다. 필요한 경우 핸들을 유지하기 위해 학생 PK를 개인 변수로 유지하고 있습니다.

내 응용 프로그램이 더 복잡해지면서 내가하고있는 일을 유지하기가 어렵다는 것을 알게되었습니다. 나에게 당신의 제안은 무엇입니까? 이 기본 사항을 새로 고치고 더 잘 처리하려면 무엇을 참조 할 수 있습니까?

도움이 되었습니까?

해결책

"일정을 쓸 수 있기를 원합니다 .Student.Name, 학생의 이름을 대가로 받고 싶습니다. 스케줄 대상에 학생 재산을 추가합니까?" 예.

설명하는 내용 (객체 그래프를 쉽게 탐색하기위한 외관 키와 객체 참조를위한 외부 키를 모두 지원하는 것은 ORM (Object-Relational Mapper)과 정말 잘 어울립니다. 좋은 ORM은 FK/PK를 사용하여 연관된 객체/객체를 자동으로로드합니다 (예 : 스케줄에 StudentPK 필드가있는 경우 Mapper는 학생 재산의 로딩/매핑을 처리합니다). 이 유형의 많은 제품이 있습니다. 엔티티 프레임 워크, 오픈 소스 nhibernate 또는 다음과 같은 상업용 제품 빛의 속도, llblgen, 엔티티 스페이스 또는 OpenAccess (공개 : 상업적 ORM을 만드는 회사에서 일합니다). Google for ORM 또는 객체 관계 매퍼 또는 Wikipedia를 확인하여 내가 설명하고있는 것들에 대한 개요를 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top