Budowanie narzędzia do zarządzania projektami z użyciem Prisma

Buduję narzędzie do kolaboracyjnego zarządzania projektami, podobne do Trello.

Używam React, Express.js, PostgreSQL i Socket.io. Zanim napiszę jakiekolwiek trasy backendowe, muszę zaprojektować schemat bazy danych.

Schemat to fundament. Jeśli schemat będzie błędny, cała aplikacja zawiedzie. Oto mój opis projektu schematu Prisma.

Modele

• User: Przechowuje imiona, adresy e-mail i hasła. Do ID używam cuid(). Tworzy to długie, unikalne ciągi znaków. Jest to lepsze niż liczby, ponieważ nie ujawnia liczby użytkowników w adresie URL.

• Project: Przechowuje nazwę i opis projektu. Opis uczyniłem opcjonalnym, używając znaku zapytania.

• ProjectMember: Jest to tabela łącząca. Łączy użytkowników (Users) z projektami (Projects). Ponieważ jeden użytkownik może dołączyć do wielu projektów, a jeden projekt może mieć wielu użytkowników, potrzebna jest ta tabela pośrednia do zarządzania relacją wiele-do-wielu. Dodałem ograniczenie unikalności, aby zapobiec dwukrotnemu dołączeniu tego samego użytkownika do tego samego projektu.

• Board: Zadania znajdują się w tablicach. Tablice znajdują się w projektach. Ta hierarchia ułatwia funkcję drag-and-drop. Przenoszenie zadania między kolumnami to tylko aktualizacja jednego pola.

• Task: To model

Source: https://dev.to/chinwuba_jeffrey/building-a-project-management-tool-from-scratch-starting-with-the-prisma-schema-161