0

저는 시스템 설계를 구걸 중입니다. 이며 조직을 대표 할 수있는 매우 유연한 구조가 필수적입니다.시스템 설계 조직 구조 표현

필수 요구 사항은 간단합니다 :

  • 그룹 :

    1. 컨테이너의 계층 구조 (조직 구성 단위)
    2. 용기 (다른 컨테이너 포함) 다른 엔티티를 포함, 같은 기관을 가지고 사용자가 포함될 수 있습니다.
    3. 캘린더
    4. 등 ...
  • 구조에 따라 허가 및 등록 프로세스를 용이하게하는 요구 사항이 있습니다.
  • Users \ Groups은 다른 컨테이너에 다른 역할 \ 사용 권한으로 등록 할 수 있으며 다른 모든 엔터티에 동일한 역할의 사용 권한을 부여합니다. 그룹 및 일정 관리 용 관리자를 정의 할 수도 있습니다. > INT ID, 문자열 이름 -
    • [[인터페이스] IEntity : 엔티티를 대표하는 "복합"디자인 패턴을 사용하여

      1. :

      초기의 생각 ...

  • 모든 엔티티는 동일한 인터페이스를 구현합니다.
  • 컨테이너 엔티티는 이러한 엔티티를 참조 할 하위 목록을 보유합니다.
  • 각 엔티티는 리프에 사용자 목록을 보유 할 "사용 권한 트리"를 보유 할 것이며이 트리는 사용자가 관리자로 엔티티에 등록하는 역할과 방식을 나타냅니다. 즉, 사용자가 트리가 표시됩니다 그룹을 통해 소유자로 등록하는 경우 : -> 그룹 1 - 소유자 사용자 1>
  • 묵상 :

    1. 각 엔티티는 삭제를해야 \ 자체 메서드 추가? 인터페이스 레벨에서 정의되거나 엔티티의 편집 및 삭제를 추가하는 모든 작업을 처리하는 일종의 "EntitiesManager"와는 다른 클래스가 있어야합니다.
    2. 내 데이터베이스가 퍼미션 트리 정보를 보유하도록 어떻게 모델링해야합니까?

    주제에 대한 아이디어, 수정 사항, 학습 교훈 또는 제안을 듣게되어 매우 기쁩니다.

    미리 감사드립니다 ...당신의 묵상을 위해

    답변

    1

    나는 다음과 같은 제안 것 :

    1. 것은 이제 모든 엔티티 인식하지 못하는 가정 그들은 당신이 더 생성하는 로직을 캡슐화한다 매우 다른 구조를 가질 수/엔티티 클래스 삭제 . 더 일반적인 수퍼 클래스 을 기본 구현으로 사용하는 것이 좋습니다.
    2. 권한 트리 정보. 이미 엔티티 모델로 끝났습니까? 당신의 사건을 위해 가장 좋은 방법은 오히려 더, 하향식 (top-down)이다 당신이 이미 :
    +0

    감사합니다 .. 내가 이해한다면 바로 볼 수 ... 당신은 제안에있을 때 데이터베이스 모델에 개체 모델을 매핑 할 수 간단 특정 Entity Class를 사용하여 CRUD 작업을 사용합니다. 그래서 만약 다른 컨테이너를 추가하고 싶다면 MyContainer.Add()를 추가하면 데이터베이스에 추가됩니다. 나는 Domain Manager Class를 사용하여 어떤 종류의 FACADE를 사용하여 엔티티를 생성하는 데 도움이 될 것이라고 생각했습니다. DomainManager.AddEntity (theEntity, ParentEntity)입니다. – Mortalus

    +0

    예. CRUD 논리가 모든 엔티티에 대해 완전히 단순한 경우이 방법이 가장 좋습니다. 그러나 매우 특정한 CRUD 논리를 가진 50 개의 다른 엔티티가있는 경우를 고려해보십시오. 데이터베이스 수준에서 구현할 수있는 계단식 삭제를 의미하지는 않습니다. 나는 '이 새로운 사용자를위한 기본 권한 세트를 만들어주십시오'와 같은 것을 의미합니다. 귀하의 DomainManager 클래스가 날아갑니다. 반면 엔티티를 사용한 일반적인 작업 중에는 항상 DomainManager 인스턴스를 얻을 필요없이 CRUD 로직에 쉽게 액세스 할 수 있습니다. –