2009-08-19 3 views
0

데이터 모델을 잘 구성하는 데 도움이 필요합니다.
간단한 노트가 될 앱을 쓰고 있습니다. 3 계층 아키텍처 = 비즈니스 로직, 데이터 로직, 데이터베이스 액세스를 사용합니다.
태그 시스템을 사용하여 앱에서 정보를 검색하는 것이 더 쉬울 것입니다. 몇 가지 질문이 있습니다.
- 관심사가 분리되어 있기 때문에 이러한 엔티티를 통해 태그 검색을 지원하는 엔티티 클래스 및 클래스가 달라야합니다. 캡슐화 또는 상속을 수행하는 가장 좋은 방법은 무엇입니까?
- 데이터베이스를 검색하고 정보를 제공하는 클래스에서 엔티티 클래스를 분리하는 것이 좋습니다. 그렇다면 엔터티 클래스, 데이터베이스 클래스, 태그 검색 도우미 및 BL 클래스의 4 가지 수준이됩니다.
엔티티를 데이터베이스 모델과 어떻게 분리합니까?

답변

0

이것은 매우 일반적인 질문이기 때문에 많은 부분을 다루지는 않습니다.

일반적으로 의심스러운 경우 상속을 피하십시오. 상속은주의 깊게 사용해야하며 실제 상속을 거의 사용하지 않습니다. 인터페이스와 집계가 가장 적절합니다.

귀하의 태그 검색 도우미를 이해할 수 없습니다. 태그는 엔티티이며 태그 처리는 비즈니스 로직입니다. 태그를 기반으로 엔티티를 검색하면 인터페이스를 사용할 수 있으며 여전히 비즈니스 로직입니다.

"데이터베이스를 검색하여 데이터베이스에 제공하는"클래스 란 무엇입니까? 데이터 액세스 계층에 대해 이야기하고 있습니까? 나는 당신의 필요에 맞는 데이터베이스에 접근하기위한 기존의 라이브러리 나 기술을 찾을 것이다. 나는 NHibernate를 사용하고있다. 그러나 이것은 당신의 어플리케이션에 과잉이라고 생각한다. 주변에 많은 다른 제품이 있습니다.

시스템의 복잡성에 따라 적절한 분리가 필요합니다. 별로 도움이되지 않습니다.

+0

데이터 레이어가 아닌 비즈니스 로직에서 검색 오버 태그를 처리하는 것이 좋습니다. 좋아, 알았다. – chester89

+0

BL에서 사용하는이 (DAL)에 대한 특정 쿼리가 있습니다. 기술은 모든 엔티티 유형에 대해 일반적인 작업을 수행 할 수 있는지, 어떻게 기술 할 수 있는지에 달려 있습니다. –

관련 문제