O melhor tipo de dados para uma escala de pagamento básica no SQL depende de vários fatores, mas geralmente você deseja usar um
numérico Tipo que permite valores decimais. Aqui está um colapso de escolhas comuns e por quê:
*
`decimal (p, s)` ou `numérico (p, s)`: Essas são as opções mais precisas. `p` representa o número total de dígitos (precisão) e` s` representa o número de dígitos após o ponto decimal (escala). Por exemplo, `decimal (10, 2)` permite números até 99999999.99. Esta é uma boa opção se você precisar armazenar valores de pagamento muito precisos, e você conhece o valor máximo com antecedência.
*
`float` ou` dupla precisão`: São tipos de ponto flutuante que podem armazenar uma gama mais ampla de números. No entanto, eles são aproximados, o que significa que eles podem não armazenar o valor exato que você entra devido à forma como os números de ponto flutuante são representados em binário. Use -os apenas se você não precisar de valores extremamente precisos (por exemplo, se pequenos erros de arredondamento forem aceitáveis).
*
`integer` ou` int`: Evite isso, a menos que todos os seus salários sejam números inteiros. Você perderá precisão se tiver centavos.
Recomendação: Para a maioria dos aplicativos de folha de pagamento, `decimal (p, s)` é o tipo de dados recomendado. Escolha valores apropriados para `p` e` s` com base na faixa provável de salários e na sua precisão necessária. Por exemplo:
* `Decimal (10, 2)` seria suficiente para a maioria das faixas salariais, permitindo valores de até 9.999.999,99.
* Se você antecipar salários excepcionalmente altos, poderá aumentar o `p`.
Lembre -se de considerar o crescimento futuro e os salários potencialmente mais altos ao escolher `p`. É melhor escolher um `p` um pouco maior do que o absolutamente necessário para evitar problemas de truncamento de dados no futuro. O uso de `s =2` é tipicamente suficiente para valores de moeda na maioria dos países.