2017-09-28 3 views
-1

다른 열의 값의 출처를 나타내는 열을 테이블에 추가해야합니다. 나는. 그것은 알려진 기원의 열거 된 가치입니다.열거 형을 나타내는 열의 최적의 데이터 형식

값을 나타내는 데 가장 적합한 데이터 유형은 무엇입니까? 정수 또는 문자열을 사용해야합니까? 최고의 디자인은 다른 테이블에 두 열을 모두 저장한다는 것을 알지만, 지금은 불가능합니다.

또한 고정 값 또는 null로 알 수없는 원점을 나타내는 것이 더 낫습니까?

+0

관련성이 있음 : https://stackoverflow.com/questions/203469/how-to-use-enums-in-oracle –

답변

0

"최상의 디자인은 다른 테이블에 두 개의 열을 모두 저장하지만 현재로서는 불가능합니다."

조회 테이블을 만들 수없는 경우 의미를 저장해야합니다. 따라서 의미에 맞는 데이터 유형을 선택하십시오. 즉, 열거 형이 'Red, Amber, Green'인 경우 varchar2(5)으로 이동하십시오. 점검 제한 조건을 사용하여 유효한 입력으로 제한하십시오.

정수를 사용하는 경우 다른 곳에 번역을 저장해야합니다. 데이터의 의미는 데이터베이스에 있어야합니다.

분명히 열을 채우는 모든 UI에서 값 목록을 복제해야합니다. 이는 조회 테이블을 만들지 않은 경우에 발생하는 기술적 빚입니다.

"일부 고정 값 또는 null로 알 수없는 원본을 나타내는 것이 더 낫습니까?"

가장 좋은 방법은 명시적인 값인 'unknown' 또는 적합 할 것입니다. 그 다음으로 가장 좋은 옵션은 null입니다. nulls은 지저분하고 쿼리를 작성하기가 어려울 수 있지만 실제 값처럼 작동하므로 잘못된 값을 초래할 수 있으므로 마법 값은 더 나쁩니다.