我需要创建一个表(postgresql 9.1)并且我被卡住了。你能帮忙吗?
传入的数据可以采用以下两种格式之一:
- 客户 id(int), shop id(int), asof(date), 数量
- 客户 id(int), , asof(date), 数量
给定的传入 CSV 模板是:{client id, shop id, shop type, shop种类, asof, quantity}
第一种情况,key是--client id, shop id, asof
第二种情况,key是--client id, shop type, shop种类, asof
我试过类似的东西:
create table(
client_id int references...,
shop_id int references...,
shop_type int references...,
shop_genre varchar(30),
asof date,
quantity real,
primary key( client_id, shop_id, shop_type, shop_genre, asof )
);
但后来我遇到了一个问题。当数据为格式 1 时,插入会因为 pk 中的空值而失败。
客户中的查询可以通过商店 ID 或商店类型和类型的组合进行。在流派上没有部分或正则表达式匹配的用例。
什么是合适的设计?我必须将其拆分为 2 个表,然后合并搜索结果吗?或者,是否习惯将 0 和空白作为缺失值并继续前进?
如果重要的话,一旦加载了所有历史数据,该表预计将有 100-5 亿行。
谢谢。