Estou desenvolvendo uma aplicação web e me deparei com o seguinte problema. O preço da vacina varia conforme o peso correspondente, mais ou menos assim
Vacina A:
Menor que 6kg - Preco: Xa
Maior q 6 até 15 - Preço Ya
Maior que 15 - Preço Za
Vacina B:
Menor que 6kg - Preco: Xb
Maior q 6 até 15 - Preço Yb
Maior que 15 - Preço Zb
Então minha pergunta é, é possivel eu fazer algo assim:
@Entity
public class Vacina {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String nome;
private double[] preco = new preco[3];
Ele geraria 3 campos de preço? Ou eu teria que criar três atributos preco?
O Problema desta abordagem é a complexidade que trará ao tratamento das querys a serem feitas, a necessidade de criar um tipo customizado e se o banco que está usando consegue trabalhar com essa abordagem.
Minha sugestão seria duas formas:
Cria uma nova tabela de preços com FK da vacina, criando uma collection de preços para cada vacina;
ou
2)Cria três campos na mesma tabela da vacina;
A primeira abordagem lhe dará a possibilidade de ter N preços para sua vacina sem muito esforço de implementação, já a segunda abordagem a cada mudança nas regras de preços caso precise adicionar um novo preço ou remover um preço você terá que adicionar nova coluna na tabela, ou remover a coluna caso tenha que tirar algum preço(podendo apenas deixar o campo null).