... | ... | @@ -38,7 +38,7 @@ Cada registro representa um usuário único da API. |
|
|
| created_at | `timestamp` | **DEFAULT** `CURRENT_TIMESTAMP` | Data/hora de criação. | 2025-09-01 12:30:00 |
|
|
|
|
|
|
**Relacionamentos:**
|
|
|
- 1:N com `users_surveys` (`User` → `UsersSurveys`).
|
|
|
- 0:N com `users_surveys` (`User` → `UsersSurveys`).
|
|
|
|
|
|
### surveys
|
|
|
|
... | ... | @@ -48,15 +48,15 @@ Representa os questionários cadastrados no sistema, contendo metadados, fluxo d |
|
|
|--------|------|-------------|------------|----------|
|
|
|
| id | `integer` | **PRIMARY KEY** | Identificador único. | 12 |
|
|
|
| first_survey_element | `integer` | **FK → survey_elements(id)**, **NULLABLE**, **ON DELETE SET NULL** | Primeiro elemento do fluxo. | 101 |
|
|
|
| title | `varchar(255)` | **NOT NULL** | Título do questionário. | Pesquisa de Satisfação |
|
|
|
| description | `varchar(500)` | **NULLABLE** | Descrição breve. | Avalie seu atendimento |
|
|
|
| url | `varchar(255)` | **NULLABLE** | URL pública do questionário. | `/q/satisfacao-2025` |
|
|
|
| title | `varchar(255)` | **NOT NULL** | Título do questionário. | Pré-diagnóstico |
|
|
|
| description | `varchar(500)` | **NULLABLE** | Descrição breve. | Avaliação online para identificar sintomas e suspeitas sobre a doença X |
|
|
|
| url | `varchar(255)` | **NULLABLE** | URL pública do questionário. | `/q/pre-diagnostico` |
|
|
|
| flow | `jsonb` | **NULLABLE**, **DEFAULT null** | Define o fluxo entre os elementos (nós e setas). | — |
|
|
|
| is_published | `boolean` | **DEFAULT false** | Indica se está publicado. | true |
|
|
|
| created_at | `timestamp` | **DEFAULT CURRENT_TIMESTAMP** | Data de criação. | 2025-09-01 12:30:00 |
|
|
|
|
|
|
**Relacionamentos:**
|
|
|
- 1:N com `users_surveys` (`Survey` → `UsersSurveys`).
|
|
|
- 0:N com `users_surveys` (`Survey` → `UsersSurveys`).
|
|
|
- 1:N com `survey_answers` (`Survey` → `SurveyAnswers`).
|
|
|
- N:1 com `survey_elements` via `first_survey_element`.
|
|
|
|
... | ... | @@ -71,8 +71,8 @@ Tabela intermediária que representa o relacionamento **N:N** entre usuários e |
|
|
| survey_id | `integer` | **FK → surveys(id)**, **NOT NULL**, **ON DELETE CASCADE** | Questionário vinculado. | 12 |
|
|
|
|
|
|
**Relacionamentos:**
|
|
|
- N:1 com `users`.
|
|
|
- N:1 com `surveys`.
|
|
|
- N:0 com `users`.
|
|
|
- N:0 com `surveys`.
|
|
|
- Representa `users (0..N) ⇄ (0..N) surveys`.
|
|
|
|
|
|
### survey_elements
|
... | ... | @@ -112,7 +112,7 @@ Cada linha representa **uma resposta individual** de um participante. |
|
|
|
|
|
| Coluna | Tipo | Restrições | Descrição | Exemplo |
|
|
|
|--------|------|-------------|------------|----------|
|
|
|
| identifier | `varchar(255)` | **NOT NULL** | Identificador único do respondente (token). | `resp-9df7a3b1` |
|
|
|
| identifier | `varchar(255)` | **NOT NULL** | Identificador único do respondente. | 105 |
|
|
|
| survey_id | `integer` | **FK → surveys(id)**, **NOT NULL**, **ON DELETE CASCADE** | Questionário ao qual a resposta pertence. | 12 |
|
|
|
| survey_element_id | `integer` | **FK → survey_elements(id)**, **NOT NULL**, **ON DELETE CASCADE** | Elemento respondido. | 101 |
|
|
|
| option_id | `integer` | **FK → options(id)**, **NULLABLE**, **ON DELETE SET NULL** | Opção marcada (para perguntas de escolha). | 301 |
|
... | ... | |