2011-08-04 4 views
0

내가 아는 것은 테이블 이름을 가진 모델 이름입니다. 하지만 여러 테이블에 액세스하는 모델은 어떻습니까? 이들에 대한 명명 표준은 무엇이되어야합니까?여러 테이블에 액세스하는 모델의 이름 지정 패턴

+0

모듈이란 무엇을 의미합니까? 모델 클래스인가요? 엔티티 프레임 워크를 사용하고 있습니까? –

+0

미안하지만 실수 실수는 모델 클래스였습니다. –

답변

1

MVC 패턴의 컨텍스트에서 모델을 의미한다고 가정하면 컨트롤러에 의한 조작 및 뷰에 의한 소비를 위해 모델이 바깥 쪽을 향하게됩니다. Model 클래스의 이름은 View 및 Controller 작성자를 돕기 위해 선택해야합니다. 나는 모델의 구현 세부 사항의 이름 (데이터베이스 테이블)이 반드시 Model 클래스의 이름에 대한 올바른 기초라는 것에 동의하지 않는다.

간단한 예를 들어 보겠습니다. CUSTOMER 테이블이 있다고 가정하십시오. 그런 다음 Customer 클래스를 만듭니다. 우리는 고객 클래스를 완벽하게 이해합니다. 이제 완전히 다른 시스템의 이점을 위해 성능상의 이유로 (이 고안된 예에서는 거의 발생하지 않지만 레거시 데이터베이스가있는 실제 시스템에서) 시스템을 사용한다고 가정하고 몇 가지 열만 포함하는 CUSTOMER_SUMMARY 테이블을 작성하기로 결정했습니다. 나머지 모든 C 럼을 포함하는 CUSTOMER_DETAILS 테이블. 이제 Customer 클래스의 이름을 변경해야합니까? 두 테이블 모두에서 데이터를 가져와 더 이상 우리의 명명 규칙을 따르지 않지만 View의 관점에서 보면 고객 데이터입니다. 필요한 것일뿐입니다. "아니오"라고 말하면 이름이 정확하고 구현 세부 사항이 변경되었지만 이는 소비자에게 중요하지 않습니다.

마찬가지로 ORDERS, ORDER_LINES, PRODUCTS와 주문에 대한 정보를 보유하고있는 클래스 (세 테이블 모두에서 데이터를 가져올 수있는 클래스)가 있다면이 클래스를 으로 부릅니다. 앞으로 ORDERS에서 가져온 요약 데이터가 필요한 경우에만 수업 주문서를 보내주십시오. 나는 "외부"로부터 이해하기 쉬운 이름을 선택하려고 노력한다.

0

나는 똑같은 이름 지정 규칙이 없다고 생각합니다. 비즈니스에 따라 모델에 대한 실제 도메인 이름을 사용할 수 있습니다. AddressInfo, Street , City 테이블을 하나의 모델 (도메인) 클래스에 매핑하려면 Address과 같은 이름을 사용한다고 가정 해 보겠습니다.

하나의 모델 (도메인) 클래스에 대한 여러 테이블 매핑은 엔티티 프레임 워크에서 좋은 방법이 아닙니다. 성능을 저하시키는 매우 복잡한 쿼리를 생성하기 때문에

관련 문제