# Database Structure

## Database Schema

<figure><img src="/files/6kYTD4yAuaGDBYmkz7bd" alt=""><figcaption></figcaption></figure>

## Database Description

The database schema is structured around tables that represent different aspects of a meeting's data. Connections between records are made primarily through identifiers (IDs) such as `meeting_id`, `speaker_id`, etc.

### Fragment

Stores information about specific parts of a meeting, with fields such as:

* `speaker_id`: ID of the speaker associated with this fragment.
* `statement_id`: ID of the statement this fragment is part of.
* `meeting_id`: ID of the meeting this fragment belongs to.
* `fragment_filepath`: Path to the file containing the fragment.
* `main_file_start_point` and `main_file_end_point`: Start and end points of the fragment within the main file.
* `speech_emotions`: Detected emotions in the speech.
* `speech_to_text`: Transcription of the detected speech.
* `posneg_emotions`: Positive and negative emotions detected in the speech.
* `final_emotions`: Final emotions detected in the speech.
* `microphone_quality`: Quality of the microphone used.
* `is_reverb`: Boolean indicating if the fragment has reverb.
* `is_lagging`: Boolean indicating if the fragment is lagging.
* `is_speech`: Boolean indicating if the fragment is speech or music.

### Meeting

Captures details of a meeting, including:

* `filepath`: Path to the meeting file.
* `name`: Name of the meeting.
* `date`: Date of the meeting.
* `n_speakers_true` and `n_speakers_pred`: Ground truth and predicted number of speakers.
* `user_email`: Email of the user who uploaded the meeting.
* `organization_id`: ID of the associated organization.
* `is_processed`: Indicates if the meeting has been processed.
* `background_noise_dB`: Background noise level in decibels.
* `from_pi`: Indicates if the meeting was uploaded from a Raspberry Pi.
* `report_id`: Global unique identifier for the meeting report.

### MeetingStatistics

Contains various meeting-related statistics:

* `involvement`: Level of involvement in the meeting.
* `top_emotion(1,2,3,4)`: Top detected emotions and their values.
* `microphone_quality`: Quality of the microphone used.
* `is_in_series`: Indicates if the meeting is part of a series.
* `overall_score`: Overall meeting score.
* `meeting_vibe_score`, `technical_setup_score`, `meeting_energy_score`, `engagement_score`, `interaction_score`: Various scores representing different meeting attributes.

### SpeakerStatistics

Provides statistics for individual speakers in a meeting:

* `dominant_emotion`: Dominant emotion of the speaker.
* `relative_speaking_activity`: Relative speaking activity level.
* `speaking_time`: Total speaking time of the speaker.
* `is_upsampled`: Indicates if the audio has been upsampled.
* `is_speech`: Indicates if the speaker's audio contains speech.

### Statement

Records details of statements in a meeting:

* `text`: Text content of the statement.
* `is_speech`: Indicates if the statement was spoken.
* `fragments`: Collection of fragments making up the statement.
* `sentences`: Collection of sentences making up the statement.

### Sentence

Stores information about individual sentences within statements:

* `statement_id`: UUID of the statement the sentence belongs to.
* `n_in_statement`: Position of the sentence in the statement.
* `text`: Text content of the sentence.
* `text_emotions`: Detected emotions in the sentence text.
* `is_offensive`: Indicates if the sentence is offensive.
* `is_speech`: Indicates if the sentence was spoken.
* `toxicity`: Toxicity level detected in the sentence.
* `statement`: Reference to the parent statement.

### Organization

Represents an organization with:

* `name`: Name of the organization.
* `meetings`: List of meetings associated with the organization.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.meetra.ai/tech-stack-and-models/database-structure.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
