Skip to main content

Database Design

Entity-Relationship Diagram

ER Diagram

Database Overview

The system uses two databases:

  • SQL Database (PostgreSQL/MySQL) - Stores users and conversations
  • NoSQL Database (MongoDB) - Stores documents and their content

Entities

User (SQL)

Stores user profile and role information.

ColumnTypeKeyDescription
user_idVARCHARPKUnique user identifier
slack_idVARCHARSlack user ID
roleVARCHARUser role (user/admin)
experience_levelINTUser's experience level

Conversation (SQL)

Stores chat history between users and the bot.

ColumnTypeKeyDescription
user_idVARCHARPKUser identifier
slack_idVARCHARSlack user ID
queryTEXTUser's question
responseTEXTBot's response
timestampTIMESTAMPWhen conversation occurred

Document (MongoDB)

Stores uploaded documents and files.

FieldTypeKeyDescription
_idObjectIdPKUnique document identifier
filenameStringOriginal file name
file_typeStringFile type (pdf, docx, txt)
contentStringFull text content