Я работаю над веб-приложением, в котором хранится много данных измерений.
Эти меры имеют разные типы, такие как температура, расход, вес, концентрация ...
Я сейчас пытаюсьреализовать диспетчер единиц измерения , позволяющий пользователям приложения выбирать, какую единицу измерения они хотят для каждой меры.
Данные представлены в нескольких таблицах:
Таблица 1: весИзмерение1 длинаМерию1 ТемператураМерность1
Таблица2: весМерза2 длинаМизер2 FlowMeasure2
Таблица3: flowMeasure3
Пользователи смогут независимо выбирать единицы измерения для каждой меры,Таким образом, выбор не будет метрический / имперский .
Все данные будут сохраняться в единице СИ или производной СИ в Базе данных.Поскольку я использую PHP для своего приложения, я решил использовать Zend_Measure для обработки преобразования (задав этот вопрос ).
Как определить единицу измерения каждого измерения в моей базе данных?
Как управлять настройками пользовательских единиц измерения?
Это лучшее решениечто у меня есть:
Я создам свойство таблица:
свойство: property_id имя единица столбца
- property_id - уникальное увеличенное число (PK)
- name - удобочитаемое имя (необязательно)
- столбец - это объединение имени таблицы и имени столбца (ограничение Unique).Например:
table2_lengthMeasure2
- unit - это константа Zend, определяющая единицу свойства в базе данных.Например:
SQUARE_METER
, KILOGRAM_PER_HOUR
, ... более подробная информация доступна в Zend Framework API .
. Я создам user_property_unit таблицудля управления пользовательскими настройками:
user_property_unit: user_id property_id unit
- unit - это константа Zend, определяющая единицу измерения свойствакогда он будет отображаться в пользовательском интерфейсе для пользователя.Например, это может быть
SQUARE_METER
в столбце единиц в таблице property
и SQUARE_FOOT
в столбце единиц в user_property_unit
Проблемы, которые я вижу с этим решением:
- Использование конкатата
table name + column name
мне кажется неправильным ... - Если я изменю имя одного из моих столбцов, оно не будет отражено в
property
Таблица.
Спасибо за вашу помощь !!
ОБНОВЛЕНИЕ Есть ли кто-нибудь, почему может помочь мне даже с некоторыми советами?