Modelagem do Banco de Dados - 98Lanches/dotlanche-database GitHub Wiki

O banco de dados em MongoDB foi elaborado para conter as informações das entidades do negócio como descrita a seguir.


Modelo Entidade-Relacionamento

1. Combo

  • Id: Identificador único do combo.
  • Lanche (nullable): Produto que é o lanche.
  • Acompanhamento (nullable): Produto que é o acompanhamento.
  • Bebida (nullable): Produto que é a bebida.
  • Sobremesa (nullable): Produto que é a sobremesa.

Lanche, Acompanhamento, Bebida, e Sobremesa são itens de Produto e são opcionais (nullable), permitindo a flexibilidade de criação de combos com diferentes combinações. Combo possui vários Produtos. (1-N) Combo pertence a um Pedido. (N-1)

2. Pedido

  • Id: Identificador único do pedido.
  • CreatedAt: Data e hora em que o pedido foi criado.
  • TotalPrice: Preço total do pedido.
  • QueueKey: Senha para retirada do pedido pelo cliente.
  • AddedToQueueAt: Data e hora em que o pedido foi adicionado à fila.
  • Status: Status atual do pedido.
  • Cpf (nullable): CPF do cliente que fez o pedido.
  • Combos: Array de Combo
  • Pagamentos: Array de Pagamento

Pedido possui vários Combos. (1-N) Pedido possui vários Pagamentos (1-N)¹

3. Pagamento

  • Id: Identificador único do pagamento.
  • IsAccepted: Booleano indicando se o pagamento foi aceito.
  • RegisteredAt: Data e hora em que o pagamento foi registrado.

4. Produto

  • Id: Identificador único do pagamento.
  • Nome: Nome do produto.
  • Description: Breve descrição do produto.
  • Price: Preço do produto.
  • Categoria: Nome da categoria que o produto pertence.

Um Combo contém um Produto de cada categoria (1-N).

¹ No caso de falha no pagamento, um novo pagamento é gerado para o mesmo pedido.


Diagrama Entidade-Relacionamento

TechChallenge