Design de banco de dados para E-Commerce pedidos com atributos de produto e preço múltiplo

Aqui está um design de banco de dados para a seção de pedidos em e-commerce, com produtos com vários atributos e vários preços:

Mesa: Users

  • UserID: Chave primária, inteiro único
  • Username: Corda
  • Email: Corda
  • Password: Corda
  • CreatedAt: Data e hora
  • UpdatedAt: Data e hora

Mesa: Orders

  • OrderID: Chave primária, inteiro único
  • UserID: Tabela de usuários de referência de chave estrangeira
  • TotalAmount: Decimal
  • OrderDate: Data

Mesa: OrderItems

  • OrderItemID: Chave primária, inteiro único
  • OrderID: Tabela Orders de referência de chave estrangeira
  • ProductID: Tabela de produtos de referência de chave estrangeira
  • VariantID: Chave estrangeira referenciando a tabela ProductVariants
  • Quantity: inteiro
  • Price: Decimal
  • Subtotal: Decimal

Mesa: Products

  • ProductID: Chave primária, inteiro único
  • Name: Corda
  • Description: Texto
  • CreatedAt: Data e hora
  • UpdatedAt: Data e hora

Mesa: ProductVariants

  • VariantID: Chave primária, inteiro único
  • ProductID: Tabela de produtos de referência de chave estrangeira
  • Name: String(por exemplo, cor, tamanho)
  • Value: String(por exemplo, Vermelho, XL)

Mesa: VariantPrices

  • PriceID: Chave primária, inteiro único
  • VariantID: Chave estrangeira referenciando a tabela ProductVariants
  • Price: Decimal
  • Currency: String(por exemplo, USD, VND)

Nesse design, a OrderItems  tabela contém informações sobre cada item em um pedido, incluindo detalhes sobre o produto, variante do produto, quantidade, preço e subtotal.