169 похожих чатов

Что-То я подвис, размышляя о следующем: Допустим у нас есть

таблица фактов и в ней DateId(дата в формате год, месяц, день), ShopId(магазин), ItemId(товар), которые
ссылаются на соответствующие таблицы измерений. Обычно в теории пишут, что создаётся составной первичный ключ в таблице фактов по всем эти айдишникам. Но, если я это сделаю, то я не смогу добавить новую продажу товара с тем же ItemId, ShopId и DateId. А ведь ситуация, когда в одном и том же магазине в течении одного дня продаётся несколько раз один и тот же товар - обычное дело.
В чём здесь подвох и может быть в данном случае вообще не нужен никакой первичный ключ в табличке фактов? Может быть есть, где про это толково написано? Как-то особо не нашёл ничего про это.

5 ответов

10 просмотров

Ну так если у тебя не уникальный ItemID зачем его первичным ключом делать? Делаешь первичным ключом инкрементный ID, а на ItemID просто индекс создаёшь

А вообще мне советовали: CASE*Method Моделирование взаимосвязей между сущностями - Ричард Баркер

Саша- Автор вопроса
Vasily Demchenco
Ну так если у тебя не уникальный ItemID зачем его ...

Я подумал, что, наверное, даже имеет смысл сделать первичным ключом инкрементный ID, а некластерный индекс повесить не только на ItemID, а ещё одновременно на DateId и ShopId, т.е. сделать некластерным составной индекс по этим трём колонкам. Имеет смысл?

Саша
Я подумал, что, наверное, даже имеет смысл сделать...

Да, в общем случае лучше не делать лишних индексов а делять их для тех полей, по которым ты будешь искать информацию в таблице

Саша- Автор вопроса
Vasily Demchenco
Да, в общем случае лучше не делать лишних индексов...

Спасибо за помощь. В общем, буду экспериментировать )

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта