이제는 분명하게 보이는 패턴을 발견합니다. 이에 대한 의견이 필요합니다.관계형 모델에서 OneToMany 관계의 성능을위한 일반적인 설계 원칙
관계형 모델에서 테이블 1에서 테이블 2로 일대 다 관계가 있다고 가정합니다. 예를 들어 테이블 1은 사용자 테이블 일 수 있고 테이블 2는 모든 사용자 로그인을 기록하는 로그인 테이블 일 수 있습니다. 한 명의 사용자가 여러 번 로그인 할 수 있습니다. 사용자가 주어지면 해당 사용자가 모든 로그인을 찾을 수 있습니다.
첫 번째 아이디어는 로그인 테이블에만 로그인을 저장하는 것입니다. 이것은 하나의 디자인입니다.
그러나 사용자가 특정 로그인 (예 : 마지막 로그인)에 관심이있는 경우 사용자 테이블 자체에 마지막 로그인 시간을 캐시하는 것이 "일반적으로 좋은 생각"입니다. 맞습니까?
디자인 2는 분명히 중복됩니다. 조인을 수행 한 다음 이전 로그인을 제외한 모든 항목을 삭제하면 항상 마지막 로그인 시간을 찾을 수 있습니다.
한 사용자는 괜찮을 것입니다. 그러나 모든 사용자에게 마지막으로 로그인 한 시간을 SQL 쿼리로 찾으려면 디자인 1에서 불필요한 결과를 필터링하는 조인과 하위 쿼리가 필요합니다.
하지만 우리의 유스 케이스를 고려하면 사용자 테이블 자체에 마지막 로그인 시간을 저장하면 가입을 줄일 수 있습니다. 그게 맞습니까?
스키마를 디자인 할 때 볼 수있는 일반적인 패턴입니까?
현재 세션 ID를 자주 추적하는 데 사용됩니다. – Aiias
방금 예를 들어 이것을 사용했는데, 나는 일반적인 설계 원칙을 많은 설계 원칙으로 언급하고 있습니다. 또한이 커뮤니티 Wiki에 질문을 올리고 싶습니다. –
디자인 단계에서 성능 측면을 평가하고 있습니다. [조기 최적화는 모든 악의 근원입니다] (http://en.wikipedia.org/wiki/Premature_optimization#When_to_optimize) –