UOM (единицы измерения) шаблоны проектирования - PullRequest
6 голосов
/ 15 марта 2011

Поиск общих принципов шаблонов проектирования в отношении хранения и преобразования известных значений (то есть метров в футы). Я безуспешно гуглял, поэтому я что-то упускаю.

Предполагается, что в одной таблице много полей с различными UOM, что является лучшим методом? В настоящее время подразумеваются многие из полей, и мы смотрим на стандартизацию этого. Мы хотим предоставить пользователям свободу для входа в их UOM, а другие - для просмотра в предпочитаемом UOM.

Должен ли я сохранить «введенное значение» и преобразовать его в какой-нибудь общий примитив (пользователь вводит футы, а я преобразую их в метры и сохраняю их)? Должен ли я сохранить это введенное значение футов в качестве резервной копии аудита?

Я не единственный пользователь какой-либо таблицы базы данных, лучше, чтобы другие приложения всегда выполняли преобразования, зная значение + UOM против необработанного введенного пользователем значения.

Есть серьезные последствия преобразования для точности, которые я мог бы упустить. Метры> футы> метры должны быть достаточно надежными для преобразования для бизнес-приложения (конверсии могут быть до 17-го знака после запятой, но отображаемые и введенные значения ограничены 2-4 знаками после запятой)

Какие-нибудь другие мысли или ссылки указывают мне правильное направление, чтобы я не изобретал решение известной проблемы?

Обратите внимание, что я не представляю какое-то грандиозное решение с перегрузкой операторов, но больше того, что будет работать в практическом приложении, которое может поддерживать обычный разработчик Joe.

Ответы [ 4 ]

2 голосов
/ 15 марта 2011

Если вы хотите шаблон, который следует за UOM, JSR-275 (java) обращается к этому. Популярная библиотека, которая реализует JSR-275: JScience .

Что касается хранения значений, я бы просто создал столбец для value и measurement type (например, метр / футы и т. Д.), Который никогда не изменяется. Преобразование может быть легко сделано по запросу.

1 голос
/ 22 июля 2013

Посмотрите на книгу Анализ паттернов. Кроме того, посмотрите на Количество шаблон .

0 голосов
/ 31 марта 2012

Проверьте этот API Java для единиц измерения: http://www.unitsofmeasurement.org/

0 голосов
/ 15 марта 2011

Один из вариантов - использовать таблицу преобразования в базе данных.Это позволило бы вашим пользователям вводить меры любым удобным для них способом (мера + код uom), и вы можете конвертировать их на лету при выходе.

Я ответил на аналогичный вопрос некоторое время назад под названием SQL преобразование пользовательских единиц

...