具有修改/变体的关系数据

时间:2018-12-01 21:21:24

标签: postgresql spring-boot merge relational-database database-versioning

假设一家超市有一张表格,其中包含营业日的统计收入数据。在第二张表中,他们想尝试这些数据的不同变体,例如1月1日的面包店收入减少,一个公共假期或周日开放。

我不想仅复制几个版本就复制一年或更长时间的全部收入数据。此外,应该很容易显示出基表与一种替代方案之间的差异。

为了更清楚一点,我在SQLFiddle中创建了一个演示案例。 SUPERMARKET_DAYS是带有基本收入数据的表。 ALTERNATIVES是变体/替代方案或方案(无论您要如何命名),ALTERNATIVE_DAYS是一个结构与第一个相似的表,其中包含具体更改。

Example at SQLFiddle

SUPERMARKET_DAYS 
(
    ID,
    DAY,
    NUM_CUSTOMERS,
    NUM_VISITORS,
    REVENUE_BAKERY,
    REVENUE_BEVERAGE,
    REVENUE_CANNED,
    REVENUE_DAIRY,
    REVENUE_DRY,
    REVENUE_FROZEN,
    REVENUE_MEAT,
    REVENUE_CLEAN,
    REVENUE_PERSONAL_CARE,
    REVENUE_PAPER,
    REVENUE_OTHER
)

ALTERNATIVES
(
    ID,
    TITLE
)

ALTERNATIVE_DAYS 
(
    ID,
    DAY,
    NUM_CUSTOMERS,
    NUM_VISITORS,
    REVENUE_BAKERY,
    REVENUE_BEVERAGE,
    REVENUE_CANNED,
    REVENUE_DAIRY,
    REVENUE_DRY,
    REVENUE_FROZEN,
    REVENUE_MEAT,
    REVENUE_CLEAN,
    REVENUE_PERSONAL_CARE,
    REVENUE_PAPER,
    REVENUE_OTHER
)

我什至不知道这种模式设计是否有意义,但它说明了问题所在。

  • 您将如何存储此类数据?
  • 我考虑过类似版本控制表的问题,但这并不能真正解决我的问题。
  • 我可以在Java代码中合并两个表。
  • 是否有类似MERGE的视图功能?

对于每一种想法或我自己的调查使用正确的关键字,我将深表感谢。这个问题应该已经存在了,但是我找不到解决的办法,所以我可能没有搜索正确的术语。

谢谢大家!

0 个答案:

没有答案