我需要在SQL(PostgreSQL)中表示以下资源:帐户和客户端。客户是指在特定年份购买产品的帐户。我需要知道哪些帐户是客户。这意味着在SQL中表示不连续的时间间隔(例如2001,2003-2010,2012-2014)。
我目前的方法如下:一个ACCOUNT
表,其中包含属性id
和name
,以及一个CLIENT
表,其中包含属性id
,{{1 }和account_id
。在year
表中,帐户将获得ACCOUNT
表中的一个条目,并且每年购买一个条目的一个条目。
我对这种方法的问题是我觉得我要复制很多信息。有些客户的时间间隔不连续,但有些客户已经不停20年,这意味着他们在CLIENT
中有20个条目。
我想到的另一种方法是使用带有ranges数组的属性CLIENT
。但是,这会使查询复杂化。什么是最好的方法?