É uma boa prática (ou teria efeitos adversos) usar um conjunto de 4 colunas para identificar uma linha como única (uma sendo uma chave estrangeira, as outras três sendo tipos de dados flutuantes)? Estou tentando criar uma tabela que (com 4 chaves vinculadas) descreva uma entrada exclusiva na tabela. Estou curioso para saber se este é um bom plano de ataque ou se existe uma maneira melhor.
Para fins visuais, imagine a tabela a seguir. Temos itens de inventário organizados como a tabela a seguir: ( [K]
simboliza a chave primária, as linhas são relacionamentos)
Sheet_Class Sheet_Type Sheet_Size
=========== ========== ==========
[K] Sheet_Class-. [K] Sheet_Type--. [K] Sheet_Size
'---- Sheet_Class '---- Sheet_Type
Length
Width
Thickness
Os dados podem se apresentar da seguinte maneira, mas, por uma questão de brevidade, excluí a possibilidade de trazer as colunas vinculadas:
Sheet_Class Sheet_Type Sheet_Size (Tables)
[Sheet_Class] [Sheet_Type] [Length], [Width], [Thickness] (Column Values)
============= ============ ==============================
Aluminum
5052-H32
48, 96, 0.032
48, 96, 0.040
48, 96, 0.063
6061-T6
60, 120,0.032
60, 120,0.040
60, 120,0.063
Steel
1018-CRS
48, 96, 0.018
48, 96, 0.023
48, 96, 0.031
Como está (e mostrei no meu "esquema" acima), uso uma chave primária inteira simples (incremento automático) para entradas na tabela Sheet_Size . No entanto, gostaria de saber se é melhor usar uma combinação das colunas Sheet_Type , Length , Width e Thickness . Dado que cada entrada no Sheet_Size deve compartilhar todas essas qualidades exclusivas e que um campo de incremento automático não demonstraria isso suficientemente bem, esse é o melhor caminho a seguir?
Se não estou explicando a situação suficientemente bem, entre em contato. Estou precisando quebrar essas partes (classe x tipo x tamanho real do estoque) de um material inventariado para outros fins lógicos, mas estou disposto a receber qualquer outro tipo de feedback.
Qualquer orientação seria apreciada.
Atualização (12-08-2011)
Após as respostas postadas, eu decidi fazer uma combinação de Mark resposta e resposta de X-Zero . Decidi que é uma boa ideia colocar uma restrição exclusiva nas colunas de comprimento, largura e espessura, mas também gosto da ideia de dividir os tamanhos dos materiais em linhas únicas e vinculá-los a um relacionamento.
Infelizmente, não posso aceitar as duas respostas, por isso aceitarei o X-Zeros por considerar (o que sinto) uma visão mais crítica do problema e oferecer um ajuste de esquema.
Obrigado a todos por suas respostas.