Skip to content

Backend Data Modeling

Ihar Suvorau edited this page Sep 14, 2023 · 4 revisions

Data models for backend services:

erDiagram
    ProcessingRequest {
        string id
        enum type
        enum status
        string userID
        string projectID
        string[] inputAssetsIDs
        string[] outputAssetsIDs
        string message
        string startTime
        string endTime
    }

    User {
        string id
        string firstName
        string lastName
        string email
        string password
        string[] projectsIDs
        datetine creationTime
        datetime modificationTime
        datetime deletionTime
        datetime lastLoginTime
    }

    Project {
        string id
        string name
        string description
        string[] userIDs
        string[] assetsIDs
        string[] processingRequestsIDs
        datetime creationTime
        datetime modificationTime
        datetime deletionTime
    }

    Asset {
        string id
        string name
        string description
        enum type
        string projectID
        string[] processingRequestsIDs
        string fileID
        datetime creationTime
        datetime modificationTime
        datetime deletionTime
    }

    File {
        string id
        datetime creationTime
        datetime deletionTime
        string contentHash
        url location
    }

    Notification {
        string id
        string userID
        string message
        enum status
        datetime creationTime
    }

    User }|--o{ Project : own

    User }|--o{ Notification : receive
    
    Project ||--o{ Asset : owns

    Asset ||--|| File : has

    User ||--o{ ProcessingRequest : initiates
    ProcessingRequest ||--o{ Asset : "uses and produces"
    ProcessingRequest }o--|| Project : "has"
Loading

Clone this wiki locally