gpt4 book ai didi

php - 使用 php + zend 测量单位的良好数据库模式?

转载 作者:搜寻专家 更新时间:2023-10-30 20:45:11 24 4
gpt4 key购买 nike

我正在开发一个存储大量测量数据的网络应用程序。

这些措施有不同的类型,如温度、流量、重量、浓度......

我目前正在尝试实现一个度量单位管理器,让应用程序的用户为每个度量选择他们想要的单位。

数据在多个表中:

Table1 : weightMeasure1 lengthMeasure1 TemperatureMeasure1

Table2 : weightMeasure2 lengthMeasure2 FlowMeasure2

Table3 : flowMeasure3

用户将能够独立地为每个度量选择他们想要的单位。所以它不会是公制/英制的选择。

所有数据都将保存在数据库中的SI 或 SI derived 单位中。因为我正在为我的应用程序使用 PHP,所以我决定使用 Zend_Measure 处理转换(在询问此 question 之后)。


如何在我的数据库中定义每个度量的单位?

如何管理用户单元偏好?


这是我迄今为止最好的解决方案:

我将创建一个属性表:

property : property_id name column unit

  • property_id 是一个唯一递增的数字 (PK)
  • name 是人类可读的名称(可选)
  • column 是表名和列名的串联(唯一约束)。例如:table2_lengthMeasure2
  • unit 是定义数据库中属性单位的 Zend 常量字符串。例如:SQUARE_METERKILOGRAM_PER_HOUR,... Zend Framework API 中提供了更多详细信息.

我将创建一个user_property_unit 表来管理用户偏好:

user_property_unit : user_id property_id unit

  • unit 是 Zend 常量字符串,定义属性在用户界面中显示时的单位。例如,它可以是 property 表的单位列中的 SQUARE_METERuser_property_unit 的单位列中的 SQUARE_FOOT >

我发现此解决方案存在的问题是:

  • 使用 table name + column name 的 concat 对我来说似乎不合适......
  • 如果我更改其中一个列的名称,它不会反射(reflect)在 property 表中。

感谢您的帮助!!


更新 有没有人甚至可以提供一些提示来帮助我?

最佳答案

您想要一个单独的 PROPERTIES 表和一个单独的链接表 TABLECOLUMNPROPERTY,使特定属性成为列的属性。

      PROPERTIES
propid
name
unitid FK references UNITS table


TCP
(tablename,columnname) composite PK
propid


UNITS
unitid
etc etc

关于php - 使用 php + zend 测量单位的良好数据库模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4463667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com