可以为每个指标创建一个新数据库 table 吗?
Is it ok to create a new database table for each metric?
我的工程团队构建了一台机器并记录了与机器相关的各种指标,例如电池电压、机器名称、使用次数等。我当前的数据库结构有以下列合一table
ID
Name of the machine
# time used
battery voltage
.
.
团队不断更改机器或指标的名称,他们建议每次更改名称时都应自动创建一个新的 table 以避免任何代码中断。例如。如果初始名称是 A1/BatteryVoltage,则 table 将是
Id
A1/BatteryVoltage
稍后,如果他们将其更改为 A1/Battery_Voltage,他们希望创建一个包含以下列
的新 table
ID
A1/Battery_Voltage
我觉得这没有意义,因为它可以用大量 table 轰炸数据库。但我的经理要求我更具体地说明为什么我认为这没有意义。我知道创建 tables 的成本并不高,但我也知道在使用此结构时无法在提取指标时创建机器名称等过滤器。我也知道我必须创建多个连接才能获得一个指标。但是还有什么可以帮助我说服我的团队或说服我自己相信我的团队想要什么吗?
为所有内容创建一个 table,添加列以区分指标。类似于:
create table metric (
id int, -- eg auto increment
created timestamp,
machine_name text, -- eg 'A1'
attribute text, -- eg 'Battery_Voltage'
value text -- eg '9'
)
现在您无需为满足新属性或属性名称更改而做任何事情。
我的工程团队构建了一台机器并记录了与机器相关的各种指标,例如电池电压、机器名称、使用次数等。我当前的数据库结构有以下列合一table
ID
Name of the machine
# time used
battery voltage
.
.
团队不断更改机器或指标的名称,他们建议每次更改名称时都应自动创建一个新的 table 以避免任何代码中断。例如。如果初始名称是 A1/BatteryVoltage,则 table 将是
Id
A1/BatteryVoltage
稍后,如果他们将其更改为 A1/Battery_Voltage,他们希望创建一个包含以下列
的新 tableID
A1/Battery_Voltage
我觉得这没有意义,因为它可以用大量 table 轰炸数据库。但我的经理要求我更具体地说明为什么我认为这没有意义。我知道创建 tables 的成本并不高,但我也知道在使用此结构时无法在提取指标时创建机器名称等过滤器。我也知道我必须创建多个连接才能获得一个指标。但是还有什么可以帮助我说服我的团队或说服我自己相信我的团队想要什么吗?
为所有内容创建一个 table,添加列以区分指标。类似于:
create table metric (
id int, -- eg auto increment
created timestamp,
machine_name text, -- eg 'A1'
attribute text, -- eg 'Battery_Voltage'
value text -- eg '9'
)
现在您无需为满足新属性或属性名称更改而做任何事情。