Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Posso usar a mesma restrição de chave estrangeira em duas tabelas diferentes?


Existem colunas e existem chaves estrangeiras (FKs) e existem restrições.

Você pode ter um nome de coluna em uma tabela independentemente de outras tabelas.

Um FK é uma tabela de referência e um conjunto de colunas e uma tabela e um conjunto de colunas referenciados. Todos os nomes juntos identificam um FK. É uma coisa conceitual sobre um banco de dados.

Uma restrição FK, sendo uma restrição, é uma coisa cujo nome deve ser exclusivo no banco de dados. Tem e impõe um FK associado, nomeadamente o descrito na sua declaração. Você pode ter várias restrições FK em uma tabela impondo a mesma FK.

O DBMS possui nomes exclusivos automáticos para restrições FK. Por exemplo, uma parte de nome mais uma parte de número onde a restrição é a restrição FK numérica da tabela com esse nome. Na verdade, você pode ter o mesmo texto de definição de restrição FK sem nome várias vezes em uma tabela e em várias tabelas, cada uma para uma restrição FK diferente. (Os que estão dentro de uma determinada tabela impõem o mesmo FK.)

Você deve ter um esquema de nomenclatura exclusivo para quando quiser nomeá-los. Nomes de tabela referenciados e referenciados devem estar envolvidos e, quando necessário, distinguir nomes de coluna.

Confusamente, dizemos FK quando queremos dizer restrição FK.

Quando você diz "É a mesma chave estrangeira em duas tabelas diferentes", isso faz um mau uso dos termos. Existem dois FKs diferentes envolvidos e restrições FK correspondentes. Você quer dizer talvez "é as mesmas colunas de referência e tabela e colunas referenciadas em ambas as restrições FK" ou "é o mesmo texto que faz referência nas declarações de restrição FK das duas declarações de tabela". Mas os nomes de restrição FK devem ser exclusivos.

Quando você diz "Em ambos os casos, refere-se a um usuário interno", você está confirmando que o tipo e/ou tabela da coluna referenciada são os mesmos para ambas as restrições FK. Mas são restrições FK diferentes para FKs diferentes.