我将把信息放在数据库中,但是我需要存储关于数据来源的元数据(数据是否被测量或计算)。 我有几个属性可能是彼此独立计算和测量的。
解决这个问题的简单/天真的方法是为每个字段设置一个布尔值,指示数据是否被测量。 有没有更好的方法来解决这个问题?
答案 0 :(得分:1)
听起来没有必要使这个复杂化。用于指示数据源的简单列就足够了。如果你只处理“测量”与“未测量”,则布尔值很好。
否则我会将它设为smallint
,这是对最初只包含的查找表的外键引用:
CREATE TABLE data_source (
id smallint primary key,
source_name text unique not null
);
INSERT INTO data_source(id, source_name) VALUES
(0, 'WhateverNotMeasuredIs'),
(1, 'Measured');
PostgreSQL还支持枚举(枚举),这是另一个很好的候选者。他们真的只适合那些永远不会改变的事情,而且更像是一种优化。你可以考虑以后再考虑它们。