베이스 코드를 불러와놓고 쓰는 패턴

DB에 TableA가 있습니다.
TableA에는 Code라는 컬럼이 존재하고, 실제 그 Code컬럼의 값은 BaseCode 테이블을 조인해서 그와 매칭되는 값을 같이 가져와야 합니다.
하지만 조인해서 가져오는게 향후에 다른 곳에 성능상 영향을 주지않을까…하는 우려가 있어서 (뇌피셜)
웬만하면 렌더링하면서 그 코드와 매칭되는 값을 표시하려고 합니다.
(써놓고 보니 렌더링하면서 분기문을 타는게 비용이 더 들지도 모르겠네요…ㅎㅎ)

Blazor에서 BaseCode 테이블을 미리 불러와서 IEnumerable<BaseCode> 이런 전역변수에 넣어뒀다가
그때그때 비교/매칭할 때 쓰고 싶습니다만,

다른 분들은 어떻게 쓰고 계신지 궁금합니다.


:pushpin: 질문 내용이 너무 산만해서 간단히 정리하겠습니다.

DB에 있는 BaseCode 리스트(약 100개 미만의 행)를 미리 불러와놓고,
DB 액세스 빈도를 최대한 낮추려고 합니다.

이와 같은 방법이 불필요하거나 무식한 방법일지? 아니면 다른 좋은 대안이 있을지 궁금합니다.

선배님들의 가르침 한 수 부탁드립니다.

1개의 좋아요

제가 선배의 자격이 있는 지 모르겠지만, 저는 보통 그러한 테이블을 "상수 테이블"이라고 부릅니다.
개발자에 의해서만 값이 변경되는 테이블을 가리킵니다.

상수 테이블의 Read 시점은 상수의 변경 가능성입니다.

=> 변경 가능성이 있다면 : scoped 서비스를 통해 읽어 오기,
=> 고정이라면 : singleton 서비스를 통해 읽어 오기

4개의 좋아요

감사합니다! :+1:
AddSingleton으로 하면 간단히 해결되겠네요.
왜 저는 Page Initialize나 다른 페이지 로딩 시점을 생각했던건지…

2개의 좋아요