2009-05-27 11 views
3

내 용도로는 사용자의 선호 측정 단위를 유지해야합니다.
가능한 단위는 현재 :데이터베이스의 측정 단위에 대한 데이터 유형

  • 리터 (내 데이터베이스의 나머지의 값에 저장되어있는 장치)
  • 킬로그램은
  • 미국 액체 갤런 ((제품의 밀도 varries) 위의 3.785411784 리터)
  • US 상기 액체 쿼트 (1/4 차)
  • UK 액체 갤런 (4.54609 리터)
  • UK 액체 쿼트 (1/4 차)
  • ,

모호성이 없으며 열거 형을 유지하고 추가 테이블을 만들 필요가없는 모든 응용 프로그램이 없도록 mssql 2005 (이상) 데이터베이스에 이러한 단위를 저장하는 방법이 필요합니다.
ISO 약어를 사용하면 처음 두 개는 작동하지만 AFAIK는 마지막 4 개가 없습니다. 문자열 표현도 문제가 요구되는 사용
..

그래서 마지막으로 측정 지체 단위를 사용하지 않는 대한 프로젝트 매니저에 이르기까지 점점 이외의 다른 어떤 제안이 있습니까?

+0

어쩌면 나는 완전히 당신의 질문을 받고 있지 않다. ... 그러나 당신의 문제는 어디에 정확히 있는가? 사용자 별 설정에 따라 데이터를보기에 표시 할 때 데이터를 정규화 된 데이터 (예 : 측정 항목)로 저장하고 변환하지 않는 이유는 무엇입니까? – n3rd

+0

숫자를 저장하고 싶지는 않지만 사용자가보고 싶은 것을 저장하고 싶습니다. 그는 킬로를보고 싶습니까? 아니면 갤런을보고 싶습니까? –

답변

2

난 당신이 새로운 테이블을 생성하지 거 알아,하지만 모든 정직에서, 그것은 옳은 일 ™입니다. 외래 키 참조가있는 열을 추가하고 끝내면 더 잘 작동합니다.

+0

모든 애플리케이션이 동일한 단위 (코드, 전환율 등) –

2

이 값을 저장하기 위해 테이블을 다시 고려해야한다고 생각합니다. 주 단위는 측정 단위를 다른 단위로 변환하고 응용 프로그램에서 중요한 유효 자릿수를 결정해야한다는 것입니다.

테이블이있는 경우 리터에서 X 로의 변환 값을 레코드에 저장할 수 있습니다. 이렇게하면 반올림 및 비교 문제를 줄이기 위해 다른 모든 응용 프로그램을 동기화 상태로 유지하는 데 도움이됩니다.

+0

을 사용하도록해야하지만, 킬로그램의 경우 재료의 밀도가 필요하므로 그러한 값이 없습니다. 그 값을 계산하려면 ... –

+0

변환 값을 저장하는 것은 실제로 다른 테이블 (2 ids 저장)과 변환 계수를 사용하여 가장 잘 수행됩니다. 이를 UOM 테이블에 저장하면 정규화되지 않은 데이터가됩니다 (UOM을 추가 할 때 열을 추가해야합니다). –

+0

@Harper : 어쩌면 당신을 이해하지 못 하겠지만 모든 것이 리터로 저장되어 있다고 가정하고 있습니다. 변환 표는 리터에서 선택한 유형으로 변환하는 데 필요한 팩토리를 간단하게 저장합니다. 이 방법은 추가 유형이 필요한 경우 열이 아니라 단순히 추가 된 행입니다. – NotMe