Nothing close enough? Start from a blank erd → Describe it in one paragraph.
How to use an erd template.
- 01Defina as entidades User e Product
Comece com User (user_id, email, name, address) e Product (product_id, name, description, price, stock). Essas são as duas entidades centrais de qualquer esquema de ecommerce.
- 02Modele o relacionamento entre Order e OrderItems
Crie Order vinculada a User (um usuário, muitos pedidos) e OrderItems como uma tabela de associação entre Order e Product. OrderItems armazena quantity e unit_price no momento da compra.
- 03Adicione Cart e CartItems
Modele Cart como uma entidade de pedido temporária vinculada a User, com CartItems conectando Cart e Product. A conversão de carrinho em pedido é um fluxo essencial a ser representado.
- 04Inclua Payment e Shipping
Adicione Payment vinculada a Order (payment_method, status, amount, transaction_id) e Shipping (carrier, tracking_number, estimated_delivery, status) para completar o ciclo da transação.
- 05Amplie com Reviews e Discounts
Adicione uma entidade Review (user_id FK, product_id FK, rating, text, date) e uma entidade Discount ou Coupon (code, discount_type, amount, expiry) para modelar uma plataforma comercial completa.
Questions about erd templates
Quais são as entidades principais em um banco de dados de ecommerce?
Entidades principais: User, Product, Order, OrderItems (tabela de associação), Cart, CartItems, Payment e ShippingAddress. Entidades adicionais incluem ProductVariant, Review, Category, Discount e Inventory.
Como modelo variantes de produto (tamanho, cor) em um diagrama ER?
Crie uma entidade ProductVariant vinculada a Product, com atributos para cada dimensão da variante (tamanho, cor, SKU, stock_qty, price_modifier). Em seguida, faça OrderItems e CartItems referenciarem ProductVariant em vez de Product diretamente.
Cart e Order devem ser entidades separadas?
Sim, para a maioria dos projetos. Cart é temporário (pode ser abandonado, alterado ou expirar), enquanto Order é um registro permanente da transação. Separá-los facilita a análise da taxa de abandono de carrinho e mantém a integridade do histórico de pedidos.
Como lidar com vários endereços de entrega por usuário?
Crie uma entidade Address separada, vinculada a User (um usuário, vários endereços). Depois, faça Order referenciar Address por meio de uma chave estrangeira shipping_address_id, preservando o endereço no momento da compra mesmo que o usuário atualize o perfil posteriormente.
Como modelo códigos de desconto em um esquema de ecommerce?
Crie uma entidade Discount (code, type: percentage/fixed, value, min_order_amount, expiry, max_uses). Vincule-a a Order por meio de uma FK applied_discount_id. Assim, fica registrado qual desconto foi aplicado a cada pedido no momento do checkout.