Рассмотрим таблицу инвентаризации деталей - если вы хотите хранить уровень инвентаризации в конце каждого дня, тогда составной первичный ключ для part_id и date_of_day будет в порядке. Вы можете выбрать создание этого уникального ключа и добавить синтетический первичный ключ, особенно если у вас есть одна или несколько таблиц, ссылающихся на него с ограничением внешнего ключа, но в этом случае проблем нет.
Так что в этом нет ничего плохого, но, как и в любом другом методе, его можно использовать неправильно, как в примере с Патриком.
Редактировать: вот еще один комментарий, чтобы добавить.
Мне напомнили о чем-то, что я написал некоторое время назад на тему того, действительно ли значения даты в базах данных являются естественными или синтетическими. Читаемое представление даты в виде «ГГГГ-ММ-ДД», безусловно, является естественным, но внутри Oracle это хранится в виде числа, которое просто представляет эту конкретную дату / время для Oracle. Мы можем выбрать и изменить представление этого внутреннего значения в любое время (для различных читаемых форматов или для другой календарной системы полностью), при этом внутреннее значение не теряет своего значения как , что конкретной даты и времени. Я думаю, что на этом основании тип данных DATE лежит где-то между естественным и синтетическим.