Реляционные данные с модификациями / вариантами - PullRequest
0 голосов
/ 02 декабря 2018

Допустим, в супермаркете есть одна таблица со статистическими данными о доходах по рабочим дням.Во второй таблице они хотят опробовать различные варианты этих данных, например, меньше выручки от хлебобулочных изделий на 1 января, еще один выходной или праздничный день по воскресеньям.

Я не хочу дублировать полные данные о доходахгод или больше всего за несколько вариаций.Кроме того, должно быть легко показать разницу между базовой таблицей и одним альтернативным сценарием.

Чтобы сделать это немного более понятным, я создал демонстрационный пример на SQLFiddle.SUPERMARKET_DAYS - таблица с базовыми данными о доходах.ALTERNATIVES - это варианты / альтернативы или сценарии (как бы вы их ни называли), а ALTERNATIVE_DAYS - это таблица, структура которой аналогична первой и содержит конкретные изменения.

Пример в 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 функциональности для представлений?

Я был бы очень признателен за любые идеи или правильное ключевое слово для моих собственных исследований.Эта проблема уже должна существовать, но я не нашел много решений для ее решения, поэтому, возможно, я не искал с правильными терминами.

Спасибо всем!

...