Chaves Compostas PK E FK
Explicando: Chaves compostas são chaves (primárias ou extrangeiras) que compõe 2 ou mais campos. Suas restrições são simples: supondo que sua chave, seja composta de 2 campos (idFunc e data). Em sua tabela, não poderão haver registros com estes dois campos iguais, mas poderão ter o valor repetido em um campo, contanto que o outro seja diferente. Exemplo:
+——–+——————+
| idFunc | Data |
+——–+——————+
| 001 | 2011/10/23 |
+—–+———————+
| 002 | 2011/10/23 |
+—–+———————+
| 001 | 2011/11/03 |
+—–+———————+
+——–+——————+
| idFunc | Data |
+——–+——————+
| 001 | 2011/10/23 |
+—–+———————+
|002 | 2011/10/23 |
+—–+———————+
| 001 | 2011/10/23 |
+—–+———————+
A criação de chaves compostas também não se diferencia em nenhum ponto. Para chaves primárias (exemplo, tabela funcionarios) :
ALTER TABLE [funcionarios]
ADD CONSTRAINT [pk_funcionarios] PRIMARY KEY CLUSTERED ([idFunc], [Data])
GO
No momento de criarmos uma chave estrangeira, devemos nos atentar de que a mesma, é composta. Caso não nos atentemos a isso, podemos ter problemas futuramente. Para a criação de foreign keys (exeplo fk em uma tabela histórico) :
ALTER TABLE [hist_func] ADD CONSTRAINT [fk_funcionarios] FOREIGN KEY NONCLUSTERED (idFunc, Data)REFERENCES [funcionarios] [(idFunc], [Data])
GO
Chaves compostas exigem atenção, porém, caso tenha um ambiente bem modelado e documentado, ela não trará problemas! http://13minutosdeumdba.wordpress.com/2011/11/14/chaves-compostas-pk-e-fk-sql-server/ CRIAR UM BD USANDO CHAVE PK E FK (SQL 2012)
16:13 No comments
Vamos a algumas coisas que devemos usar como padrão em um banco.
Quando se refere a chaves primarias é certo usar abreviação PK de primary key.
Já a chave estrangeira usa-se o FK de foreign key.
Mais como saber se seu banco deu certo e está exatamente como foi pedido?
Então uma coisa que costumo fazer é criar um diagrama do banco, para então verificar se está tudo exatamente como eu deseja ou que foi solicitado