0

У меня есть таблица измерения с составного первичного ключа Пример:Составной первичный ключ в таблице измерения

Operateur:

centre 
registreDuCommerce 
libelleCentre 
LibelleRegistreduCommerce 

Первичный ключ: centre, registreDuCommerce

А то таблица

MyFactTable:

col1 
col2 
col3 
centre 
registreDuCommerce 

центр и registreDuCommerce ?? центр: Является ли код города , где установлена ​​компания registreDuCommerce: idenfiant из компании

И эти ключи помогают идентифицировать компанию, потому что мы можем точно такие же registreDuCommerce, но с разным с.

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

Благодаря

ответ

1

Это не только редкость, чтобы составной первичный ключ, как это, это редкость, чтобы иметь не синтетическую первичный ключ (за исключением даты, возможно). Целое число будет гораздо более обычным первичным ключом - вы все равно можете поместить не нулевой и уникальный ключ в эти столбцы.

Итак, таблица фактов должна состоять из целых внешних ключей к таблицам измерений вместе с метриками.

create table dim_customer (
    id   integer primary key, 
    first_name character, 
    ... 

create table dim_item (
    id   integer primary key, 
    product_code character unique, 
    ... 


create table fct_sales (
    item_id  references dim_item(id), 
    customer_id references dim_customer(id), 
    ... 
    sale_amount number 

При поступлении необработанных данных с кодом продукта, вставить в таблицу dim_item уникальный список всех кодов продуктов, которые не существуют в нем.

Когда вы загружаете таблицу фактов, вы просматриваете соответствующий идентификатор для элемента из таблицы dim_item, и это значение вставляется в таблицу fct_sales.

Когда вы запрашиваете склад, вы присоединяетесь из таблицы фактов к таблицам измерений, чтобы получить значащие значения (имя клиента, код товара и т. Д.).

+0

, но в моделировании валидной модели мы должны иметь первичный ключ как один столбец, а не составной первичный ключ – archavin

+0

Да. «Целое число будет гораздо более обычным первичным ключом». –

+0

мы можем сделать что-то вроде id_CERC в качестве первичного ключа для представления составного первичного ключа? но как мы можем ссылаться на это в таблице фактов? – archavin

Смежные вопросы