Как смоделировать ограничение для нескольких строк (для хранилища метаданных)

Предисловие: я знаю о дизайне снежинок, я часто создавал базы данных с этим.

Сейчас я экспериментирую с "мета-дизайном", который позволяет клиентам гибко настраивать несколько кубов фактов с несколькими измерениями.

Один из подходов означает создание своего рода "базы метаданных", то есть центральных таблиц для фактов, измерений, деревьев, моделей, а затем объединение их всех.

Таблица фактов будет выглядеть так:

FACTKEY  FACTVALUE
89231    12.5$
89232    13.9$

Затем FACTKEY будет связан с моделью и ее размерами, например: (упрощенно - конечная база данных будет иметь искусственные ключи)

FACTKEY MODELKEY DIMKEY   DIMVALKEY
89231   OPEX     Country  Czech
89231   OPEX     Account  Sales
89231   OPEX     Product  Bananas

"Модель" определяет, какие размеры будут использоваться. Это определено в другой таблице.

Проблема: как создать ограничение, которое гарантирует, что для определенной модели (например, "OPEX") всегда будет ровно 3 строки для каждого факта - одна для страны, одна для учетной записи, одна для продукта?

0 ответов

Другие вопросы по тегам