> For the complete documentation index, see [llms.txt](https://docs.meetra.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.meetra.ai/tech-stack-and-models/database-structure.md).

# 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.
