таблица фактов и в ней DateId(дата в формате год, месяц, день), ShopId(магазин), ItemId(товар), которые
ссылаются на соответствующие таблицы измерений. Обычно в теории пишут, что создаётся составной первичный ключ в таблице фактов по всем эти айдишникам. Но, если я это сделаю, то я не смогу добавить новую продажу товара с тем же ItemId, ShopId и DateId. А ведь ситуация, когда в одном и том же магазине в течении одного дня продаётся несколько раз один и тот же товар - обычное дело.
В чём здесь подвох и может быть в данном случае вообще не нужен никакой первичный ключ в табличке фактов? Может быть есть, где про это толково написано? Как-то особо не нашёл ничего про это.
Ну так если у тебя не уникальный ItemID зачем его первичным ключом делать? Делаешь первичным ключом инкрементный ID, а на ItemID просто индекс создаёшь
А вообще мне советовали: CASE*Method Моделирование взаимосвязей между сущностями - Ричард Баркер
Я подумал, что, наверное, даже имеет смысл сделать первичным ключом инкрементный ID, а некластерный индекс повесить не только на ItemID, а ещё одновременно на DateId и ShopId, т.е. сделать некластерным составной индекс по этим трём колонкам. Имеет смысл?
Да, в общем случае лучше не делать лишних индексов а делять их для тех полей, по которым ты будешь искать информацию в таблице
Спасибо за помощь. В общем, буду экспериментировать )
Обсуждают сегодня