Каким был бы первичный ключ, если бы не это соображение?
Вы можете создать составной индекс для (worker_id, created_at)
. Нет причин объявлять его первичным ключом, просто чтобы получить его в качестве индекса.
Но вы также можете создать индекс или, возможно, даже первичный ключ для (worker_id, created_at, event_type)
. Этот индекс должен уметь делать все, что может другой, и даже больше. Если event_type не очень широк, он не должен быть намного больше. Недостатком является то, что если вы обновите строки, чтобы изменить только event_type (что не очень вероятно, только на основе имен столбцов), этот индекс отключит оптимизацию Heap-Only-Tuple.