문제

전달 상태 코드가 열거되어 있습니다. 그리고 배송 데이터를 데이터베이스에 저장하면 동일한 데이터가 포함 된 테이블에 외래 키가 저장됩니다 (즉, 동일한 전달 코드).

데이터베이스의 데이터와 동기화로 열거를 유지하기위한 가장 좋은 전략은 무엇입니까?

새 코드가 데이터베이스에 추가 될 때 열거에 추가하는 것을 기억하십니까?

아니면 응용 프로그램이 시작될 때 데이터를 사전에로드 하시겠습니까? 열거 대신 사전을 사용합니까? 이것은 데이터를 강력하게 입력하지 못한다는 것을 의미합니다.

또는 다른 것?

데이터는 변동이 많지 않지만 새로운 코드가 추가됩니다.

어떤 제안도 감사 할 것입니다.

감사해요

도움이 되었습니까?

해결책

Visual Studio 2008에서 T4 템플릿을 사용합니다.이 방법으로 빌드 중에 코드 생성을 강요 할 수 있으며 원하는 각 테이블에 대해 열거를 생성합니다.

좋은 출발점이 될 것입니다 Hilton Giesenow의 샘플, 나는 당신의 질문에 정확히 답변합니다.

다른 각도에서 더 흥미로운 접근법은 SQL 뷰를 사용하여 데이터베이스에서 열거를 모방하는 것입니다. 이렇게하면 데이터베이스를 C# (또는 기타) 코드와 동기화합니다. Oleg Sych의 블로그에서 그것에 대한 훌륭한 게시물을 찾을 수 있습니다. 여기.

다른 팁

코드에서 열거를 사용하면 일반적으로 데이터베이스에 열거 값 테이블을 유지하는 대신 형식의 이름을 데이터베이스에 Varchar로 저장합니다. 나는 이것이 원하는만큼 정규화되지 않았다는 것을 알고 있지만 데이터베이스와 열거를 동기화하는 것보다 낫다고 생각합니다. 필요한 것은 삽입/업데이트에서 포맷하고 선택에 구문 분석하여 값을 열거로 다시 재구성하는 것입니다.

나는 열거가 수정 될 것이라고 믿을 때만이 작업을 수행하지만, 나도 드물게 업데이트되었습니다. 데이터가 정기적으로 업데이트 될 가능성이 있다고 생각되면 열거를 사용하지 않으며 데이터베이스에 별도의 테이블이 외국 키 참조가있는 별도의 테이블을 갖습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top