O
id
campo é um exemplo de uma chave substituta
. É uma boa ideia usar uma chave substituta como chave primária em um banco de dados porque ela não está relacionada e, portanto, não é afetada por eventos externos no mundo real. Usando uma chave natural como o endereço de e-mail pode causar problemas porque, se um usuário alterar seu endereço de e-mail, sua chave terá que ser alterada. Isso pode criar dificuldades, pois quebrará as restrições de chave estrangeira. Também tornará a consulta de eventos relacionados a um usuário específico ao longo do tempo mais difícil, pois você não tem uma chave única garantida que seja consistente para todo o histórico desse usuário.
Se você tiver mais de um banco de dados em sua empresa que precisa das chaves ou exportar dados do seu banco de dados para outros aplicativos ou sistemas, quando você alterar uma chave em seu banco de dados, também poderá precisar alterar as chaves nesses sistemas, algo que não pode ser feito automaticamente usando ON CASCADE UPDATE.