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