MVC 구조 및 Business Object/DAO 아키텍처를 사용하는 비즈니스 응용 프로그램에서 작업. 일반 비즈니스 객체의 경우 CRUD 함수는 매우 간단합니다. 하지만 "고객은 사용자"와 같은 부모 - 자식 관계를 처리하는 가장 좋은 방법은 무엇입니까?DAO의 상속 관계를 반영하는 가장 효과적인 방법은 무엇입니까?
User, UserDAO, Customer, CustomerDAO
Customer
클래스는 단지 벌금 User
에서 상속 할 수 있지만, 최선의 방법 당신은 DAO의 CRUD 기능이 반영 않습니다
나는 다음과 같은 클래스가 포함되어 있는지 알아?
'사용자'와 '고객'의 두 테이블이 있습니까? 나는 놀랄 것이다. 나는'user_type' 필드를 가진'users' 테이블을 생각할 것입니다. 그런 다음 하나의 VO, 즉 '사용자'만 있습니다. 'user.isCustomer()'가 true이면 그것은 고객입니다. 따라서 두 테이블을 사용하지 말아야하며 상속을 사용하지 않아야합니다. – Nishant
@Nishant : 전혀 사실이 아닙니다. 고객이 추가 데이터를 가지고 있지 않은 경우에는 관련없는 열이있는 User 테이블이 어수선하게 표시됩니다. 두 테이블을 사용하여 상속을 구현하는 것이 확실히 가능합니다. –
@Matt 나는 타당성에 대해 말하지 않고, 나는 디자인에 대해 더 생각하고 있었다. 고객은 사용자이므로 두 테이블을 같은 테이블에 두는 것이 좋습니다. 검색에 도움이 될뿐만 아니라 나에게 더 의미가 있습니다. 복잡한 일이 걱정된다면 관련없는 데이터를 외부화하십시오. 별도의 테이블'customer_details'를 만들고 외부 키와 링크하십시오. 많은 시나리오에서 사용자를 고객으로 변환 할 수 있습니다.테이블간에 데이터를 복사 한 다음 데이터를 지우는 대신 형식을 변경하는 것이 더 쉽습니다. 그냥 내 2 %. – Nishant