응용 프로그램은 Ruby on Rails로 작성되었지만 현재 직면 한 문제는 언어 관련 문제보다 더 중요한 문제입니다.사용자 인증 디자인은 사용자입니까?
시스템은 레지스트리를 유지 관리하기 위해 많은 사용자에게 서비스를 제공합니다. 그래서 그것은 사람과 사물을 관련시킵니다. 이 모델에는 소유자를 나타내는 Person이라는 모델이 있으며 레지스트리를 관리하는 사용자를 나타내는 User라는 모델이 있습니다.
이제 사람들이 로그인하여 원래 설계에 필요하지 않은 개인 세부 사항을 변경할 수있는 새로운 요구 사항이 생겼습니다.
질문은 어떻게이 새로운 요구 사항을 허용하도록 응용 프로그램을 리팩터링합니까?
하나의 쉬운 해결책은 로그인 자격 증명을 요청하고 사용자를 개인 엔터티에 연결하는 각 사용자에 대해 사용자를 생성하는 것입니다.하지만 이름, 성 등과 같은 일부 필드는 두 클래스 모두에 있으며 특히 DRY가 아닙니다. 정확히 사람들이 바꿀 수 있습니다. 게다가 사용자와 사람은 별도의 테이블에 저장됩니다.
내가 생각한 또 다른 가능성은 하나를 다른 것으로 확장하는 것이지만 분리 된 테이블에 데이터를 넣으면 조금 더러워집니다. 또한 로직 확장은 사용자가 될 것입니다 < - 사용자로서 사람은 (일반적으로) 사람이지만 구현에 대해 생각합니다 사람 < - 사용자가 훨씬 쉽습니다.
는은 마지막 옵션 사용자를 스크랩하고 해당 단지에 로그인 빈 필드에 로그인 할 자들과 반 빈 로그온 필드를 떠나 사람에 로그인 자격 증명을 이동할 수 있습니다.
당신은 생각할 수 더 나은 해결책?