대상 지향 사상 으로 데이터 베 이 스 를 설계 하 다.

개발 자 에 게 데이터 구조의 변화 로 인해 프로그램의 수정 은 의심 할 여지없이 골 치 아 픈 일이 다.특히 잦 은 수정 에 오늘 필드 를 추가 하고 내일 필드 를 추가 하 는 등 중요 하지 않 은 작업 을 수정 하 는 데 많은 시간 을 낭비 하고 있다.
자, 본론 으로 들 어가 자.  다음 작은 예 를 먼저 보 겠 습 니 다.

//   
public class Product{
     private long productId;
     private String category;
     private String productCode;
     private String productName;
}

//      ,      
public class RecommendProduct{
    private String recommend_username;
    private String recommend_date;
    private Product product;
}

보통 저희 디자인 이 그래 요.
검색 을 통 해 List < RecommendProduct > 를 첫 페이지 로 되 돌려 줍 니 다. 작업 이 완료 되 었 습 니 다.
다음 과 같이 디자인 하려 면 합 리 적 이지 않 고 디자인 의 원칙 인 기능 단일 성 도 깨 뜨 렸 다.

//   
public class Product{
     private long productId;
     private String category;
     private String productCode;
     private String productName;

    //     
     private String recommend_flag;//     
     private String recommend_username;
     private String recommend_date;
}

자, 이제 이 디자인 사진 을 데이터 디자인 으로 옮 겨 보도 록 하 겠 습 니 다.
제품 과 recommend 제품 을 한 장의 표 에 디자인 하면 다음 과 같 습 니 다.
제품 표
product_id   number(12)
category     varchar2(16)
productCode  varchar2(16)
productName  varchar2(32)
recommend_flag char (1) / / 추천 표지 위치
처음에는 그 랬 을 거 예요.
2 급 도 메 인 이름 의 첫 페이지 10 개 를 추천 하려 면 어떻게 합 니까?표지 필드 10 개 를 추가 하 시 겠 습 니까?분명히 이렇게 하면 안 된다
대상 을 향 한 사상 설 계 를 채택 하면 다음 과 같다.
제품 표 (제품 관련 정보 만 포함 하 는 필드)
product_id   number(12)
category     varchar2(16)
productCode  varchar2(16)
productName  varchar2(32)
Recommend Product 표 (하나의 표지 가 아 닌 단독 표 로)
recommend_id (PK)
product_id (Fk)
recommend_username
recommend_date
이렇게 하 는 또 다른 장점 은 두 표 의 변 화 는 독립 적 인 것 이다. Recommend Product 표 에 필드 를 추가 할 수 있 고 produt 표 가 함께 디자인 되면 처음에 말 하 는 문제 가 발생 할 수 있다. 오늘 필드 를 추가 하고 내일 필드 를 추가 하 는 상황 이다.
대상 을 대상 으로 디자인 한 개폐 원칙 을 참고 하 였 다.

좋은 웹페이지 즐겨찾기