Home | Escopo e Cronograma | Git Workflow | Design e Mockups | Configuração | Arquitetura | Front-End | Back-End | BD | Qualidade | Gerência |
---|
Banco de Dados – Plataforma de Doações
Visão Geral
O banco de dados foi projetado para suportar a plataforma de campanhas de arrecadação, contemplando usuários (administradores e doadores), endereços, campanhas, doações, pagamentos e eventos.
Entidades e Estrutura
user_account
-
id
(UUID, PK) -
full_name
,email
(único, obrigatório) password_hash
password_reset_token
-
id
(UUID, PK) -
token
,created_at
,expires_at
-
user_id
(FK → user_account.id)
admin
-
user_id
(PK, FK → user_account.id) -
root
(boolean, indica superadmin)
donor
-
user_id
(PK, FK → user_account.id) -
tax_id
(CPF, único) -
birth_date
,gender
,phone
address
-
id
(UUID, PK) -
state
,city
,district
,street
,number
,complement
donor_address
- PK composta (
donor_id
,address_id
) -
is_primary
(boolean) -
addr_type
(ex.: residencial, comercial)
campaign
-
id
(UUID, PK) -
title
,description
,target_amount
,current_amount
,start_date
,end_date
,image_url
-
status
(campaign_status
) -
admin_id
(FK → admin.user_id) -
created_by
(FK → user_account.id)
donation
-
id
(UUID, PK) donation_type
-
amount
,periodicity
, -
donor_id
(FK → donor.user_id) -
campaign_id
(FK → campaign.id) -
created_at
(timestamptz)
payment
-
id
(UUID, PK) -
method
(payment_method
) -
status
(payment_status
) -
amount
,paid_at
-
donation_id
(FK → donation.id)
events
-
id
(UUID, PK) -
title
,description
,date_start
,date_end
,location
,url
,created_at
,updated_at
news
-
id
(UUID, PK) -
title
,description
,date
,location
,url
,created_at
,updated_at
Índices
donor_address(address_id)
campaign(admin_id)
donation(donor_id)
donation(campaign_id)
payment(donation_id)
Observações
- Constraints de ON DELETE foram configuradas conforme regras de negócio.
- Doações preservam histórico mesmo se a campanha for excluída.
- Defaults:
uuid_generate_v4()
para IDs eNOW()
para timestamps.
Diagrama Entidade-Relacionamento
O diagrama representa as principais entidades, atributos e relacionamentos do sistema, incluindo os enums campaign_status
, payment_status
e payment_method
.