Database
 sql >> Baza danych >  >> RDS >> Database

Modelowanie podstawowej struktury danych w celu zarządzania użytkownikami, wątkami i postami

Forum dyskusyjne online to witryna, w której ludzie może prowadzić rozmowy w formie wysłanych wiadomości . Fora dyskusyjne umożliwiają prowadzenie rozmów, gdy ludzie nie są online, a wiadomości mogą być tymczasowo archiwizowane. Ponadto, w zależności od konfiguracji forum, wiadomość może wymagać zatwierdzenia przez moderatora, zanim stanie się widoczna dla innych użytkowników. Fora mają określony zestaw terminów, na przykład pojedyncza rozmowa jest ogólnie nazywana „wątkiem”. Na wątki może odpowiadać tyle osób, ile tylko zechce. Większość forów wymaga od użytkowników zarejestrowania się, a następnie zalogowania się w celu publikowania wiadomości. Jednak na większości forów użytkownicy nie muszą się logować, aby przeczytać istniejące wiadomości.

Są to typowe wymagania dla forum witryny , więc pracujmy nad stworzeniem modelu bazy danych, zaczynając od podstawowej konfiguracji forum, którą możemy później rozszerzyć.

Podmioty

Jak wspomniano wcześniej, ludzie prowadzą konwersacje w formie opublikowanych wiadomości, które są pogrupowane w konwersacje. Tak więc baza danych musi obsługiwać informacje o ludziach lub użytkowników , rozmowy lub wątki i wiadomości lub posty .

W przypadku forum internetowego trzeba będzie utworzyć użytkowników — może być konieczne zezwolenie użytkownikom na edycję swoich danych po ich utworzeniu, ale prawdopodobnie nie ma potrzeby zezwalania na usuwanie użytkowników. Użytkownicy będą tworzyć konwersacje lub wątki, zazwyczaj umieszczając pierwszą wiadomość na forum, zamiast jawnie tworzyć konwersację, ale może być konieczne wsparcie obu możliwości. Wątki będą zawierać posty utworzone przez użytkowników.

Funkcjonalność

Zamieszczanie wiadomości to główna funkcjonalność forum internetowego . Czy użytkownicy powinni mieć możliwość edytowania wiadomości po ich opublikowaniu? Czy użytkownicy powinni mieć możliwość usuwania wiadomości po opublikowaniu? Odpowiedź na oba pytania jest prawdopodobnie tak.

Relacje

Posty są połączone z wątkami, a posty są tworzone przez użytkowników, więc będzie zdefiniowany związek między użytkownikami a postami. Wątki są tworzone przez użytkowników, więc powinieneś przechowywać tam relację (na przykład, jeśli użytkownik zostanie zablokowany na forum, możesz chcieć usunąć wszystkie wątki i posty, które utworzył ten użytkownik).

Teraz, gdy znasz podmioty i związki , jesteś gotowy do zbudowania modelu bazy danych, co powinno zająć tylko kilka minut. Tutaj przydają się narzędzia.

Model bazy danych

Rzućmy okiem na Vertabelo, aby kontynuować forum dyskusyjne online.

Utwórz model dla forum internetowego i zacznij dodawać podmioty reprezentowanie użytkowników, wątków i postów. Vertabelo przypomni Ci, że musisz zdefiniować klucze główne dla każdej tabeli; Polecam używanie id takie kolumny zapewnią Ci większą potencjalną elastyczność (i nie będą wiązać Cię z nazwą użytkownika jako kluczem podstawowym lub innymi pułapkami). Następnie dodaj związki które już wcześniej opisaliśmy. Dodałem hasło (w formie zaszyfrowanej) dla użytkownika, aby kontrolować logowanie użytkowników.

Teraz otrzymasz coś, co wygląda mniej więcej tak:




Zobaczysz, że istnieją znaczniki czasu z datą/godziną utworzenia każdego wiersza, dzięki czemu informacje te mogą być wyświetlane na forum („Użytkownik od 2 lutego 2014 r.”, „Data opublikowania:24 grudnia 2014 r.” itp.). ).

Jeśli zamierzasz mieć moderowaną forum dyskusyjne online, na którym wiadomości muszą zostać zatwierdzone przez moderatora, zanim staną się widoczne dla innych użytkowników, należy dodać element statusu do wątków i postów, aby aplikacja mogła zdecydować, czy wątki i powiązane posty zostały sprawdzone i zatwierdzone. Status umożliwiłby również innym użytkownikom oznaczanie wątków i postów jako spam lub nieodpowiednie.

Mam nadzieję, że możesz już zacząć myśleć o ulepszeniach. Na przykład, jeśli potrzebujesz formalnych informacji o użytkowniku, zamiast pojedynczego pola „imię i nazwisko”, możesz chcieć podać jego imię, nazwisko i nazwę użytkownika lub pseudonim. Post może mieć temat oprócz treści, ale myślę, że temat postu jest powiązany z wątkiem, więc może to nie być konieczne.

  Następna część »

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zabawa z kompresją (kolumnową) na bardzo dużym stole – część 3

  2. Zrozumienie instrukcji PIVOT, UNPIVOT i Reverse PIVOT

  3. Dowiedz się, jak obsługiwać wyjątki w PL/SQL

  4. Jednostki funkcjonalne

  5. Jak obliczyć pierwiastek kwadratowy w SQL?