2012-05-13 2 views
1

데이터베이스에서 사용자의 키와 체중을 캡처해야합니다. UI에서는 높이를 센티미터와 인치로 지정하는 옵션을 제공해야합니다. - 무게, 킬로그램 및 파운드의 경우. 나중에 사용자를 표시 할 때 키와 몸무게를 1 단위 측정 단위로 표시해야합니다 (예 : 모든 사용자의 CMS 또는 기능).MySQL : 신장/체중 정보를 저장하는 방법?

이 데이터를 저장하는 가장 좋은 방법은 무엇입니까? 높이 (예 : 높이 값, 높이 단위)와 중량 데이터 (예 : 중량 값, 중량 단위)에 대한 2 개의 데이터를 저장 한 다음 입력 된대로 사용자 데이터를 저장합니까? 데이터를 균일 한 단위로 표시해야하는 경우 SQL에서 변환을 수행합니다.

또는 저장하기 전에 데이터를 변환해야합니까? 나중에 사용자 데이터를 표시해야 할 때 대화 할 필요가 없습니까?

그런데 실제 사용자에게 데이터를 다시 표시 할 때 사용자가 선택한 것과 동일한 단위에 있어야합니다.

+0

을 줄 것이다 계산 된 필드에 가입? 1. 사용자가 입력 한 내용을 정확히 재생할 수 있습니까? 또는 2. DB의 높이와 무게를 쉽게 비교할 수 있습니까? 또는 3. 모든 사용자에게 그녀가 선호하는 단위로 모든 데이터를 표시 할 수 있습니까? – joshp

답변

7

특별한 이유가없는 한 한 곳에서 한 형식으로 저장하고 나중에 코드에서 표준 변환을 항상 사용하십시오. 데이터베이스는 비즈니스 규칙이 아닌 데이터를 저장해야합니다.

+0

180cm 및 72 인치는 모두 데이터입니다. 나는 이것을 비즈니스 규칙으로 보지 않는다. 삽입 이전에 변환을 수행하면 나중에 사용자에게 정확히 변환 할 수 없을 수도 있습니다. – StackOverflowNewbie

+1

예, 둘 다 데이터이지만 동일한 것은 아닙니다. 데이터베이스에 비즈니스 변환 규칙을 알려달라고 요청하는 것입니다. 정확하게 저장하면 나중에 사용자 환경 설정으로 변환 할 수 없습니다. 비즈니스 규칙입니다. – GDP

0

하나의 높이와 하나의 너비 만 저장하려는 경우 - 원하는 단위를 사용하십시오. 단위 변환은 단일 곱셈이며 본질적으로 제로 비용입니다.

는 또한 단위 테이블을 가질 수 있으며 내부 간단한 당신에게 정확한 수치 단일 쿼리에서 값 (선택뿐만 아니라 INSERT/UPDATE) 더 중요하다

+0

그래서 미터법을 선택한다고 해봅시다. 모든 높이를 CMS로 저장하십시오. 모든 무게를 kgs로 저장하십시오. 나중에, 신장을 인치로 저장 한 사람은 CMS에서 다시 변환해야합니다. CMS에서는 더 이상 정확하지 않을 수 있습니다. 그게 내가해야하는 일이야? – StackOverflowNewbie

+2

네, 그렇게해야합니다 : 하나의 나누기와 하나의 곱셈을 적용한 단 정밀도 플로트는 모든 무게 또는 높이 필요에 따라 훨씬 더 정확한 정밀도를 제공합니다! 무게가 몇 밀리그램 정도 잘못되면 간단히 신경 쓰지 않아도됩니다. –

+0

사용자가 데이터를 어떻게 입력했는지 정확하게 저장하는 것이 단점입니까? 동일한 측정 단위를 사용하여 모든 사용자를 표시해야 할 때 변환을 수행합니까? – StackOverflowNewbie

관련 문제