No caso de chaves estrangeiras, os campos referenciado e referenciado devem ter exatamente o mesmo tipo de dados.
Você cria o
id campos em ambos os users e firms conforme assinado inteiros. No entanto, você cria ambas as chaves estrangeiras como não assinadas inteiros, portanto, a criação das chaves falhará. Você precisa adicionar o
unsigned cláusula para o id definições de campo ou remova o unsigned cláusula dos campos de chave estrangeira.