나는 다소 복잡한 클래스를위한 좋은 모델을 제시하려고합니다. 서로 독립적 인 엔티티가 두 개 있습니다 (응용 프로그램 내에서 자체적으로 사용하기 때문에), 사용자 그룹 및 이벤트 유형이 있습니다.C#의 데이터 모델링
사용자 그룹에는 권한이 부여 된 이벤트 유형 목록이 있습니다. 그 외에도 나중에 대체 할 앱 문자열을 알려주는 사용자 그룹 및 이벤트의 각 조합에 적용되는 문자열 목록이 있습니다 (따라서 사전은 키가 대체 할 필드이고 값은 대체 할 값입니다) 와).
SQL 배경이 더 많아서 테이블과 기본 키의 관점에서 생각하기 쉽습니다. Dictionary<int, Dictionary<tuple<int, string>, string>>
또는 Dictionary<int, Dictionary<int, Dictionary<string, string>>>
I와 같은 구조를이 구조는 UserGroupID, EventTypeID, NameToReplace
을 키가 될 것입니다,하지만 난 C#에서 그것을 할 수있는 방법을 마련 할 때, 나는 (나는 그들이 추악한라고 생각하거나 적어도) 추한와 끝까지 또한 사전 개념을 없애고 튜플 목록 또는 모든 논리적 "키"를 함께 묶는 사용자 정의 클래스 목록을 만들 수 있습니다.
내 질문에이 종류의 중첩 된 컬렉션 구조가 일반적인 및/또는 좋은 아이디어입니까? 이 데이터를 모델링 할 때 모범 사례가 있습니까?
미리 감사드립니다.
당신이 생각 것을 클래스 구조를 더 자세히 설명해 주실 수 있습니까? –
"모든 논리적"키 "를 하나로 묶는 맞춤 클래스 목록"이것이 가장 깨끗한 해결책입니다. 느슨한 유형의 사전과 튜플을 사용하지 않아도되도록 약간의 코드가 앞에 있습니다. –
@DStanley 제안에 감사드립니다. 'int'와는 반대로 객체를 사전에 키워 두었다면 많은/성능 저하가 있는지 알고 있습니까? 아니면 equals()를 오버라이드 (override)하는 방법에 정말로 미치지 않습니까? – Xedni