0

我有要放入数据库的信息,但我需要存储有关数据来自何处的元数据(无论是测量数据还是计算数据)。我有几个属性可以相互独立地计算和测量。

解决这个问题的简单/天真的方法是为每个字段设置一个布尔值,指示数据是否被测量。有没有更好的方法来解决这个问题?

4

1 回答 1

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 还支持枚举(enums),这是另一个很好的选择。不过,它们真的只适合那些永远不会改变的东西,而且更像是一种优化。您可以稍后再考虑。

于 2013-06-12T13:23:10.773 回答