88 lines
1.2 KiB
Markdown
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
|