我们在PostgreSQL中有一些表格,其中包含客户交易等详细信息,其中我们有大量旧数据但新数据不断涌入。它可能看起来像:
| id | timestamp | cost | tax |
| 0 | 1432807913984 | 20.10 | 3.20 |
...
我们一群人以特定的方式使用这些数据,我们希望每个人都能跟踪哪些行用于我们自己的目的。
一个例子可能是,我们决定将机器学习应用于事务表,并跟踪哪些行已经学习,一列用于指示它被用于此目的。
稍后,需要一个新任务将事务表用于另一个后处理任务。另一栏是在交易中制作的,表明它是否已被使用。
是否有任何约定用于这些场景?
答案 0 :(得分:0)
我不确定约定,但肯定可以通过添加新列来使用数组数据类型:
alter table table_name add column markers text[];
要将记录标记为已处理,您需要运行:
update table_name set markers = coalesce(markers, array[]::text[]) || array['some_marker'] where ...;
这将为现有标记添加新标记。
检查记录是否标有some_marker
run:
select * from table_name where 'some_marker' = any(markers);
有关postgresql中数组的更多信息,请参阅: http://www.postgresql.org/docs/9.4/static/arrays.html和 http://www.postgresql.org/docs/9.4/static/functions-array.html