Se fosse por mim...
Você precisa atender aos requisitos do banco de dados e de seus aplicativos.
A adição de uma coluna de ID inteiro ou longo com incremento automático a todas as tabelas para servir como chave primária cuida dos requisitos do banco de dados.
Você adicionaria pelo menos um outro índice exclusivo à tabela para uso do seu aplicativo. Esse seria o índice em employee_id, ou account_id, ou customer_id, etc. Se possível, esse índice não deve ser um índice composto.
Eu preferiria índices em vários campos individualmente sobre índices compostos. O banco de dados usará os índices de campo único sempre que a cláusula where incluir esses campos, mas somente usará um composto quando você fornecer os campos exatamente na ordem correta - o que significa que não poderá usar o segundo campo em um índice composto, a menos que você forneça o primeiro e o segundo na sua cláusula where.
Sou a favor do uso de índices calculados ou do tipo Função - e recomendo usá-los sobre índices compostos. Isso facilita muito o uso do índice de função, usando a mesma função na sua cláusula where.
Isso cuida dos requisitos de sua aplicação.
É altamente provável que outros índices não primários sejam realmente mapeamentos desse valor de chave de índices para um valor de chave primária, não para rowid (). Isso permite que operações de classificação física e exclusões ocorram sem a necessidade de recriar esses índices.