Если бы это было до меня ...
Вам необходимо удовлетворить требования базы данных и ваших приложений.
Добавление в каждую таблицу столбца с автоматически увеличивающимся целым числом или длинным идентификатором в качестве первичного ключа обеспечивает соблюдение требований к базе данных.
Затем вы должны добавить по крайней мере еще один уникальный индекс в таблицу для использования вашим приложением. Это может быть индекс для employee_id, account_id, customer_id и т. Д. Если возможно, этот индекс не должен быть составным индексом.
Я бы предпочел индексы по нескольким полям индивидуально, а не составные индексы. База данных будет использовать индексы одного поля всякий раз, когда предложение where включает эти поля, но она будет использовать составной только тогда, когда вы предоставите поля в точном правильном порядке, то есть она не может использовать второе поле в составном индексе, если вы не предоставите как первое, так и второе в вашем предложении where.
Я полностью сторонник использования вычисляемых индексов или индексов функционального типа и рекомендую использовать их вместо составных индексов. Это позволяет очень легко использовать индекс функции, используя ту же функцию в предложении where.
Это позаботится о ваших требованиях к приложению.
Весьма вероятно, что другие непервичные индексы на самом деле отображают значение ключа этого индекса в значение первичного ключа, а не в rowid (). Это позволяет выполнять операции физической сортировки и удаления без повторного создания этих индексов.