- 파티 모델 뒤의 핵심 원칙과 동기 부여의 힘은 무엇인가?
필자가 사용한만큼 코드 재사용과 유연성에 관한 내용입니다. 이전에 guest/user/admin 모델에서 사용 해왔고 사용자를 한 그룹에서 다른 그룹으로 이동해야 할 때 그 가치를 입증합니다. 이를 사용자 아래에있는 조직 및 회사 에까지 확장하고 실제로 SQL에 고유하지 않은 추상화 형태를 제공합니다.
- 데이터 모델에 대한 처방은 무엇입니까? (위의 내 비트 꽤 높은 수준과 어떤면에서 아마도 잘못이다. 나는 그것을 사용하는 프로젝트에 있었어요,하지만 난했다 별도의 팀과 함께 작업하는 것은 다른 문제에 집중).
좀 더 자세히 설명해도 위와 똑같습니다. 데이터베이스의 엔티티 (파티라고 부름)가 다른 당사자와 계약을 맺는 상황을 상상해 볼 수 있습니다. 그러면 상황에 따라 하청을받을 수 있습니다. 당사자는 직원, 계약자 또는 회사, 모든 당사자의 당사자 일 수 있습니다. 내 이해에서, 당신은 Party 테이블과 각 서브 클래스에 대한 더 구체적인 테이블을 가지게 될 것이고, 그런 다음 더 하위 클래스 화 될 수 있습니다 (Party -> Person -> Contractor).
- 당신의 경험으로 인해 어떤 느낌이 들게 되었습니까? 그것을 사용 했습니까? 이면 그렇게할까요? 찬반 양론은 이었습니까?당신이 당신의 시스템에 새로운 유형을 추가하고 새로운 수준으로 이동 (사용자의 시작과 건축가에 기대하지 않았다 유형 간의 관계를 만들기 위해 유연해야하는 경우
그것은 그 혜택을 가지고, 회사는 고용 다른 회사 등). 또한 단일 쿼리를 실행하고 여러 유형의 당사자 (회사, 직원, 계약자)에 대한 데이터를 검색하는 이점을 제공합니다. 플립 측면에서, 당신은 실제로 필요로하는 데이터를 얻기 위해 추상화 계층을 추가하고 특정 유형을 쿼리 할 때 데이터베이스에서로드 (또는 적어도 조인의 수)를 늘리고 있습니다. 추상화가 너무 많이 진행된다면 복잡한 쿼리가 가독성과 데이터베이스 부하에 해로울 수 있으므로 데이터를 검색하기 위해 여러 쿼리를 실행해야 할 수 있습니다.
- 파티 모델에서 ORM을 선택하지 않았습니까? 예를 들어, 도메인 개체와 실제 데이터 모델 사이에 "추상화 계층"이개로 충분하지 않았기 때문에 특정 ORM을 제거해야합니까?
이 내가 틀림에 조금 약한 해요 영역입니다,하지만 난 응용 계층에서의 전망과 미러 추상화를 사용하는 것은 문제의이 너무 많이하지 않았 것으로 나타났습니다. 데이터 소스를 직접 읽으 려 할 때 (항상 새로운 개발자가 시스템에 대해 직관적 인 것은 아니지만) 필자의 실제 문제는 언제나 "데이터 X의 일부가 어디에 있는지"였습니다.
환상적인 응답. 감사. "앱 레이어에서 추상화 된 미러링"이라고 말하면 도메인 객체도 파티 모델 패턴을 따랐다는 의미입니까? –
그렇습니다. 이는 분명히 동기화 문제가 발생하는 논리를 2 곳에서 작성해야한다는 것을 의미합니다. 그러나 제 3 자 ORM 사용 범위는 매우 제한적입니다 (사내 ORM 도구를 자주 사용했지만) –