Sql 如何从其他数据库记录中引用特定的表列?

Sql 如何从其他数据库记录中引用特定的表列?,sql,mysql,database,database-schema,Sql,Mysql,Database,Database Schema,我想为MYSQL数据库表中的列定义额外的属性 例如,我想定义数据库列的度量单位 为此,我目前计划创建此表: COLUMN_UNIT id {table_name, column_name} unique constraint unit_id (我没有使用复合PK,因为我的框架需要一个自动递增的ID字段) 我可以拥有的其他表格包括: UNIT id unit_name WEATHER_DATA temperature wind_speed ... SENSOR_DATA intensity

我想为MYSQL数据库表中的列定义额外的属性

例如,我想定义数据库列的度量单位

为此,我目前计划创建此表:

COLUMN_UNIT
id
{table_name, column_name} unique constraint
unit_id
(我没有使用复合PK,因为我的框架需要一个自动递增的ID字段)

我可以拥有的其他表格包括:

UNIT
id
unit_name

WEATHER_DATA
temperature
wind_speed
...

SENSOR_DATA
intensity
frequency
...
使用列名和表名是引用其他列的最佳方式吗?

谢谢


更新:

在我的例子中,一列中的所有记录都将具有相同的属性值。它是一个按列的属性。因此,对于温度,所有值都将以摄氏度为单位。

您需要在单位表中使用倍数。。例如,您的WEATHER_数据表可以是

WEATHER_DATA
temperature
temperature_unit_id (FK to UNIT)
wind_speed
wind_unit_id (FK to UNIT)
我不知道你的框架是否允许在同一个表上有多个外键。。。如果没有,我想您可以创建另一个包含表名、列名称和单位id的表。。但那太难看了

希望能有帮助

编辑:

您可以使用一个元表,它只是存储表的额外信息的表。。mysql使用自己的元表来存储行数、列类型等。一些框架使用自己的元表(如Django)。。但是您可以创建自己的元表,它们就像其他任何表一样,在您的情况下,它可以是

WEATHER_META
temperature_unit_id FK
wind_unit_id FK
META_TABLES
table_name
column_name
unit_id
天气表也会很好

WEATHER_DATA
id
temperature
wind_speed
...
或者,如果愿意,可以为所有表创建一个元表。差不多

WEATHER_META
temperature_unit_id FK
wind_unit_id FK
META_TABLES
table_name
column_name
unit_id

为每个包含数据的列指定一个FK列似乎很繁重。我的问题中没有具体说明,但“温度”列中的所有值都具有相同的单位。因此,这个解决方案将为每个天气数据记录重复温度的单位id…啊,这是不同的=P,那么您需要的是一个元表,您可以在其中保存表thx的额外信息!你能更具体地说明什么是元表吗?如何使用MySQL正确构建一个?我在谷歌上找不到任何相关信息。。。