Pergunta

Eu tenho as duas tabelas a seguir em MySQL: Cliente (ID, FirstName, LastName ...) Bônus (ID, CustomerID, Valor, ...)

A relação é individual, todo cliente tem apenas um bônus. (O CustomerID é único na tabela de bônus)

P: Devo soltar a coluna ID da tabela de bônus? (Eu quero saber por que ou por que não)

Foi útil?

Solução

Eu removeria o bônus. Fazer isso removerá a necessidade de ter uma restrição única no bônus. Coluna Customerid, pois agora será um PK. Qualquer pessoa que olhe para a mesa verá o um a um mais claramente sem o bônus.ID coulmn. Você não precisará de um índice no bônus.customerid, o índice PK será tudo o que você precisa; portanto, menos espaço em disco e cache de memória desperdiçada. Além disso, se você precisar de um FK para a tabela de bônus, usará o valor do cliente (o novo PK), que pode ser usado para voltar às tabelas de clientes ou bônus, não apenas bônus.

Outras dicas

Presumo que não seja realmente um verdadeiro, porque você pode ter um cliente sem uma fila de bônus. As restrições de chave estrangeira no estilo SQL são sempre opcionais no lado de referência de qualquer relacionamento.

Concordo que a coluna bônus.ID parece ser completamente redundante.

Se é ono-a-um, por que existe alguma tabela extra? Em vez disso, você pode colocar "BonusValue" na sua tabela de clientes.

(Else: Sim, você pode abandonar o ID da mesa de bônus, o ID do cliente é a chave primária e o "id" é completamente redundante)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top