我正在开发一个存储大量测量数据的 Web 应用程序。
这些措施有不同的类型,如温度、流量、重量、浓度......
我目前正在尝试实现一个度量单位管理器,让应用程序的用户为每个度量选择他们想要的单位。
数据在多个表中:
表 1:重量测量 1 长度测量 1 温度测量 1
表2:weightMeasure2 lengthMeasure2 FlowMeasure2
表 3:流量测量 3
用户将能够为每个度量独立选择他们想要的单位。所以它不会是一个公制/英制的选择。
所有数据都将保存在数据库中的SI 或 SI 派生单位中。因为我在我的应用程序中使用PHP,所以我决定使用Zend_Measure来处理转换(在问了这个问题之后)。
如何在我的数据库中定义每个度量的单位?
如何管理用户单位偏好?
这是我迄今为止最好的解决方案:
我将创建一个属性表:
property : property_id 名称列单位
- property_id是唯一的递增数字 (PK)
- name是人类可读的名称(可选)
- column是表名和列名的串联(唯一约束)。例如 :
table2_lengthMeasure2
- unit是定义数据库中属性单位的 Zend 常量字符串。例如:
SQUARE_METER
、、KILOGRAM_PER_HOUR
... Zend Framework API中提供的更多详细信息。
我将创建一个user_property_unit表来管理用户首选项:
user_property_unit : user_id property_id 单位
- unit是 Zend 常量字符串,用于定义属性在 UI 中显示给用户时的单位。例如,它可以
SQUARE_METER
在表格的单位列中,也可以在property
表格SQUARE_FOOT
的单位列中。user_property_unit
我在此解决方案中看到的问题是:
- 使用 concat
table name + column name
对我来说似乎不合适...... - 如果我更改其中一列的名称,它将不会反映在
property
表中。
感谢您的帮助!!
更新有没有人可以帮助我,即使有一些提示?