당신은 성능이나 사용 요구 사항에 대해 아무것도 언급하지 않았다, 그래서 일반적인 방법으로 대답 할거야 당신이 더 필요하면 내 대답을 업데이 트됩니다 특정 정보. DB 테이블의 경우 이러한 라인을 따라 일반적인 정규화 된 접근 방식을 제안합니다.
tblProject
ProjectID
ProjectDescription etc.
tblTask
TaskID
TaskDescription etc.
tblEmployee
EmployeeID
Name etc.
tblProjectTasks
ProjectTasksID
ProjectID
TaskID
tblTaskAssignments
TaskAssignmentsID
TaskID
EmployeeID
또 다른 유효한 접근법은 프로젝트 목록을 정의하는 테이블과 다른 테이블을 정의하는 것입니다. 작업과 직원들도 마찬가지입니다. 실제 응용 프로그램에서는 다른 잘 정의 된 객체를 포함하는 클래스를 설계하는 것처럼 이러한 엔티티가보다 일반적인 테이블에서 잘 정의되는 것이 일반적입니다. 예를 들어, 직원 이외의 프로젝트 리소스는 언급하지 않았습니다. 이러한 리소스는 리소스 유형, 리소스 속성 등을 정의하는 스키마에 표시 될 수 있으며 리소스를 프로젝트 및/또는 작업에 조인합니다.
Project Employees를 나타내는 테이블을 만들 수도 있지만 다른 테이블을 조인하여 프로젝트에 할당 된 직원을 찾을 수 있으므로이 테이블의 데이터는 중복됩니다. IMHO, 이러한 종류의 중복은 테이블이 거대하고이 특정 유형의 쿼리가 자주 사용되는 경우에만 보증됩니다. 그러나 나는 다른 접근법을 먼저 고려할 것입니다.
당신은 또한 수업에 대해 질문했습니다. 목표를 더 잘 이해하지 않으면 너무 구체적이지 않습니다. 일반적인 OO 디자인에서 클래스는 Project, Task 및 Employee를 분명하게 표현해야합니다. 그러나 당신은 당신의 특정한 요구에 맞게 맞추어야합니다.
프로젝트, 작업 및 직원은 모두 클래스입니다. –
@ i.seek.therefore.i.am, 질문에서 알기 힘듭니다. ;-) –