Clyde/Documents/proto/messaging_extension/ERD.md
Debucquoy Anthony 4f1a44549b ERB msg done (#14)
# Entity relational diagram

## Messaging extension

```mermaid
%%{init: { "er": {"fontSize": 25}}}%%
erDiagram

%% General
Users

%% Messages
Discussions{
    Integer id PK
    String name
}

Messages{
    Integer id PK
    Integer response FK "Messages"
    String content
}

Discussions ||--o{ Messages: ""
Discussions ||--o{ Users: ""

Messages o|--o{ Messages: "answers"

%% Forums
Forums{
    Integer id PK
    String name
}

Topics{
    Integer id PK
    String subject
    String content
    Boolean locked
}
Answers{
    Integer id PK
    String content
    Boolean anonymous
    TimeStamp creation_time
}

Polls{
    Integer id PK
    enum PollType
}
Options{
    Integer id PK
    String name
}

Forums ||--o{ Users: "Registered"
Forums ||--|| Teacher: "Owner"
Forums ||--|| Course: ""
Forums ||--o{ Topics: ""
Forums ||--o{ Polls: ""

Topics ||--|| Teacher: "Author"
Topics ||--|| Users: "Author"
Topics ||--o{ Answers: ""

Polls ||--o{ Options: ""

Options ||--o{ Votes : ""

Votes }o--|| Users: "Voter"

%% Appointments
Teachers
Appointments{
    Integer id PK
    TIME sent_time
    enum Status
}

Appointments ||--|| Teachers: ""
Appointments ||--|| Users: ""

```

Debucquoy Anthony

Co-authored-by: Debucquoy <debucqquoy.anthony@gmail.com>
Reviewed-on: #14
Reviewed-by: Maxime <231026@umons.ac.be>
2023-12-15 14:36:10 +01:00

88 lines
1.2 KiB
Markdown

# Entity relational diagram
## Messaging extension
```mermaid
%%{init: { "er": {"fontSize": 25, "stroke": "black" }}}%%
erDiagram
%% General
Users
%% Messages
Discussions{
Integer id PK
String name
}
Messages{
Integer id PK
Integer response FK "Messages"
String content
}
Discussions ||--o{ Messages: ""
Discussions ||--o{ Users: ""
Messages o|--o{ Messages: "answers"
%% Forums
Forums{
Integer id PK
String name
Integer course FK "Course"
}
Topics{
Integer id PK
String subject
String content
Boolean locked
}
Answers{
Integer id PK
String content
Boolean anonymous
TimeStamp creation_time
}
Polls{
Integer id PK
enum PollType
}
Options{
Integer id PK
String name
}
Forums ||--o{ Users: "Registered"
Forums ||--|| Teacher: "Owner"
Forums ||--o{ Topics: ""
Forums ||--o{ Polls: ""
Topics ||--|| Teacher: "Author"
Topics ||--|| Users: "Author"
Topics ||--o{ Answers: ""
Polls ||--o{ Options: ""
Options ||--o{ Votes : ""
Votes }o--|| Users: "Voter"
%% Appointments
Teacher
Appointments{
Integer id PK
Integer teacher FK "Teacher"
TIME sent_time
enum Status
}
Appointments ||--|| Users: ""
```
Debucquoy Anthony