> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fivenetwork.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Banco de Dados

> A Five Network utiliza MySQL como banco de dados principal. O schema completo está em database.sql.

O **Five Network** utiliza MySQL como banco de dados principal. O schema completo está em `database.sql`.

***

## Estrutura do Banco

O `database.sql` cria **42 tabelas**, organizadas por área funcional do servidor.

<AccordionGroup>
  <Accordion title="Jogadores e contas" icon="users">
    | Tabela       | Descrição                                                                             |
    | ------------ | ------------------------------------------------------------------------------------- |
    | `accounts`   | Contas dos jogadores (Discord, licença, whitelist, premium)                           |
    | `characters` | Dados dos personagens (nome, telefone, skin, banco, prisão)                           |
    | `avatars`    | Fotos de perfil dos personagens                                                       |
    | `dependents` | Sistema de dependentes familiares                                                     |
    | `playerdata` | Dados dinâmicos por personagem, no formato `Passport` + `Name` + `Information` (JSON) |
    | `hwid`       | Banimentos por hardware ID                                                            |
  </Accordion>

  <Accordion title="Grupos e dados globais" icon="key">
    | Tabela        | Descrição                                                                                                                                            |
    | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `entitydata`  | Dados globais do servidor no formato chave/valor (`Name` + `Information` em JSON). É aqui que ficam as permissões, no registro `Permissions:<Grupo>` |
    | `permissions` | Dados agregados de cada organização: membros, tags, anúncios, experiência, pontos, caixa e premium                                                   |

    <Note>
      As permissões dos jogadores **não** ficam na tabela `permissions` — elas vivem em `entitydata`. Veja [Grupos e Permissões](/base-five/configuracao-da-base/permissoes).
    </Note>
  </Accordion>

  <Accordion title="Economia" icon="money-bill">
    | Tabela               | Descrição                                  |
    | -------------------- | ------------------------------------------ |
    | `transactions`       | Histórico completo de transações bancárias |
    | `taxes`              | Registros de impostos                      |
    | `invoices`           | Faturas emitidas                           |
    | `bank_joint_invites` | Convites para contas bancárias conjuntas   |
  </Accordion>

  <Accordion title="Ativos" icon="car">
    | Tabela       | Descrição                                                                                                                                         |
    | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `vehicles`   | Veículos registrados (dono, dano, combustível, nitro)                                                                                             |
    | `propertys`  | Propriedades (tipo de interior, taxa, cofre, garagem)                                                                                             |
    | `chests`     | Baús e contêineres de armazenamento                                                                                                               |
    | `core_craft` | Legado (`StationKey` + `Data` em JSON). Nenhum recurso da base atual escreve nela — o `five-crafting` usa outro armazenamento. Pode ser ignorada. |
  </Accordion>

  <Accordion title="MDT (policial)" icon="shield-halved">
    São 12 tabelas com o prefixo `mdt_creative_`:

    | Tabela                            | Descrição                 |
    | --------------------------------- | ------------------------- |
    | `mdt_creative_arrest`             | Registro de prisões       |
    | `mdt_creative_fines`              | Multas emitidas           |
    | `mdt_creative_warning`            | Advertências aplicadas    |
    | `mdt_creative_wanted`             | Lista de procurados       |
    | `mdt_creative_reports`            | Relatórios de ocorrências |
    | `mdt_creative_board`              | Mural de avisos do grupo  |
    | `mdt_creative_internalaffairs`    | Processos da corregedoria |
    | `mdt_creative_penalcode_sections` | Seções do código penal    |
    | `mdt_creative_penalcode_articles` | Artigos do código penal   |
    | `mdt_creative_units`              | Unidades e patrulhas      |
    | `mdt_creative_medals`             | Medalhas e condecorações  |
    | `mdt_creative_vehicles`           | Veículos apreendidos      |
  </Accordion>

  <Accordion title="EMS (médico)" icon="kit-medical">
    | Tabela                       | Descrição                      |
    | ---------------------------- | ------------------------------ |
    | `ems_creative_consultations` | Registros de consultas médicas |
    | `ems_creative_exams`         | Exames realizados              |
    | `ems_creative_specialties`   | Especialidades médicas         |
  </Accordion>

  <Accordion title="Administração e suporte" icon="screwdriver-wrench">
    | Tabela                          | Descrição                          |
    | ------------------------------- | ---------------------------------- |
    | `codes_creative`                | Códigos de resgate criados         |
    | `codes_creative_redeemd`        | Resgates já efetuados              |
    | `tickets_creative`              | Tickets de suporte                 |
    | `tickets_creative_messages`     | Mensagens de cada ticket           |
    | `deaths_creative`               | Log de mortes                      |
    | `painel_creative_announcements` | Anúncios do painel web             |
    | `painel_creative_paramedic`     | Registros do painel de paramédicos |
    | `painel_creative_tags`          | Tags do painel                     |
    | `painel_creative_transactions`  | Transações registradas no painel   |
  </Accordion>

  <Accordion title="Negócios" icon="store">
    | Tabela                  | Descrição                          |
    | ----------------------- | ---------------------------------- |
    | `fuelstations_creative` | Postos de combustível e seus donos |
    | `races`                 | Estatísticas de corridas           |
  </Accordion>
</AccordionGroup>

<Info>
  Só estas 42 tabelas vêm no `database.sql`. Recursos como o `five-laundry` criam as próprias tabelas na primeira inicialização — por isso o banco cresce depois do primeiro boot.
</Info>

***

## Migrações

O `database.sql` contém o schema completo e já atualizado. Se você está **atualizando** a base de uma versão anterior, aplique as migrações listadas no final do `README.md`:

```sql theme={null}
ALTER TABLE characters ADD created int(20) Default 0 NOT NULL;
```

<Warning>
  Sempre faça backup do banco antes de aplicar migrações em um servidor já em produção.
</Warning>

***

## Backup

Configure backups automáticos do banco de dados:

```bash theme={null}
# Exemplo de backup diário (adicione ao Task Scheduler do Windows)
mysqldump -u fivem -p fivenetwork > backup_%date%.sql
```

***

## Conexão MySQL no server.cfg

```cfg theme={null}
# Formato da string de conexão
set mysql_connection_string "mysql://usuario:senha@host/banco?charset=utf8mb4"

# Exemplos:
set mysql_connection_string "mysql://fivem:minhasenha@localhost/fivenetwork?charset=utf8mb4"
set mysql_connection_string "mysql://fivem:minhasenha@127.0.0.1:3306/fivenetwork?charset=utf8mb4"
```
