Estou criando um script de um banco de dados bastante simples para que eu possa simplesmente passar um script para outra pessoa para um aplicativo usar. Estou curioso para saber onde as melhores práticas/comunidade se posicionam sobre isso: quando você deve criar suas restrições de chave primária/estrangeira? Você deve fazer isso enquanto está criando as tabelas por causa da continuidade, ou deve fazê-lo depois que as tabelas forem criadas, pois será mais fácil criar scripts dessa maneira, pois você pode criar as tabelas na ordem que desejar? Existem falhas fatais em potencial no caminho com qualquer um dos padrões?
relate perguntas
-
Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?
-
Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?
-
Quais são as principais causas de deadlocks e podem ser evitadas?
-
Quais são algumas maneiras de implementar um relacionamento muitos-para-muitos em um data warehouse?
-
Como determinar se um Índice é necessário ou necessário
Eu normalmente crio a restrição de chave primária diretamente com a tabela:
Não vejo sentido em adiar essa restrição PK para mais tarde (o mesmo também se aplica a
DEFAULT
restriçõesCHECK
que normalmente também defino "inline" com o script de criação da tabela ).No entanto, a restrição FK, normalmente defino como
ALTER TABLE .. ADD CONSTRAINT ...
instruções separadas, que podem ser executadas logo após a criação da tabela ou após a criação de todas as tabelas - realmente não importa: