Como representar esta classe no banco de dados?

4 respostas
javaprogramação
P

tenho que criar a tabela da seguinte classe, porém estou em dúvida em como fazer… Já tenho a classe Pessoa e PedidoItem

Exemplo simples da classe:

public class Pedido {
  private Long id;
  private Pessoa pessoa;
  private List<PedidoItem> itens;
}

Banco de dados: H2

4 Respostas

L

Acho que seriam 3 tabelas, assim:

  • PESSOA
    • ID
  • PEDIDO
    • ID
    • ID_PESSOA
  • PEDIDO_ITEM
    • ID
    • ID_PEDIDO
P

Desta forma, será que esta de acordo?

As entidades são:

public class Pedido {

    private Long id;
    private Pessoa pessoa;
    private List<PedidoItem> itens;
	
}
public class PedidoItem {
    private long id;
    private Produto produto;
    private int quantidade;
    private Pedido pedido;
	
}
public class Pessoa {

    private long id;
    private String cpf;
    private String nome;
	
}
public class Produto {
    private int registro;
    private String descricao;
    private BigDecimal valorUnitario;
	
}

No banco de dados:

CREATE TABLE pessoa (
  id INT AUTO_INCREMENT  PRIMARY KEY,
  cpf VARCHAR(11) NOT NULL,
  nome VARCHAR(250) NOT NULL
);
CREATE TABLE produto (
  id INT AUTO_INCREMENT  PRIMARY KEY,
  descricao VARCHAR(50) NOT NULL,
  valor_unitario NUMERIC(10,2) NOT NULL
);
CREATE TABLE pedido (
  id INT AUTO_INCREMENT  PRIMARY KEY,
  idCliente integer,
  CONSTRAINT fk_idCliente
  FOREIGN KEY (idCliente)
  REFERENCES pessoa(id)
);
CREATE TABLE pedidoItem (
  id INT AUTO_INCREMENT  PRIMARY KEY,
  qntd INT,
  idProduto integer,
  CONSTRAINT fk_idProduto
  FOREIGN KEY (idProduto)
  REFERENCES produto(id),
  idPedido integer,
  CONSTRAINT fk_idPedido
  FOREIGN KEY (idPedido)
  REFERENCES pedido(id)
);
L

Aparentemente, está correto sim. Vc definiu as FKs de acordo com a modelagem.

P

muito obrigado pela ajuda, darei continuidade assim então. qlqr dúvida mando aqui XD

Criado 12 de dezembro de 2022
Ultima resposta 12 de dez. de 2022
Respostas 4
Participantes 2