나는 입력 문제가있는 디자인 문제가 있습니다. 다음은 제약 조건입니다.계정 전자 메일 활성화 디자인 (최대 절전 모드를 염두에두고)
- 각 사용자는 계정을 등록 할 때 작동하는 전자 메일 주소가 있어야합니다. 사용자 계정을 등록 할 때 계정 활성화를 위해 반드시 따라야하는 활성화 코드가있는 활성화 이메일을 보내야합니다.
- 각 사용자 계정은 정확히 한 회사에있는 정확히 한 사무실에만 있습니다.
- 회사의 첫 번째 등록 사용자는 회사와 하나의 사무실을 만듭니다. 나머지 회사 사용자는 첫 번째 사용자에 의해 초대됩니다.
- 회사는 상호 작용할 수 있지만 회사의 첫 번째 사용자가 활성화 된 경우 (즉 등록 후 각 활성화 링크를 클릭 한 경우)에만 상호 작용할 수 있습니다.
alt text http://i43.tinypic.com/2dj5bhh.png
일부 세부 탈락되어 상기 도면에서 :
여기가 해결 될 수 있는지의 작은 UML 다이어그램이다. 다이어그램에는 클래스와 필드 만 표시됩니다. 필드에 관해서는 어떤 정보를 저장해야 하는지를 개념적으로 보여주기 위해 사용됩니다. 범위를 무시하십시오.
어떤 생각과 질문 :
- 사용자 및 NotActivatedUser은 대부분 동일합니다. 그들은 단일 클래스 또는 분리되어야합니까? 그들이 분리되어 있다면, 어떤 형태의 Hibernate 상속 지속성을 사용할 것입니까?
- 계정이 일정 시간 후에 활성화되지 않으면 계정을 제거해야합니다. 첫 번째 사용자 인 경우 사용자 및 회사를 만든 사용자도이 두 가지를 모두 제거해야합니다. NotActivatedOffice와 NotActivatedCompany도 필요합니까? (데이터베이스의 분리를 위해)
이러한 종류의 솔루션을 어떻게 설계 하시겠습니까? 비 활성 및 활성 엔터티를 데이터베이스에서 분리 된 상태로 유지하는 것이 중요하다고 생각하십니까? 그 이유는 무엇?
사무실 소유자 깃발이 필요없는 것 같습니다. 주어진 사용자가 만든 사무실을 찾으려면 정말 간단한 쿼리 여야합니다. –
사무실에서 사용자에게 역 참조가있는 경우에만. 이것은 또 다른 옵션이 될 것입니다. –