• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dodawanie komentarzy do bazy danych - budowa bazy danych

0 głosów
258 wizyt
pytanie zadane 4 stycznia 2019 w SQL, bazy danych przez pp2k22 Nowicjusz (170 p.)
Witam, tworzę todo list coś podobnego do todoist.com. Mój problem polega na tym, że nie wiem jak zaprojektować model bazy danych. Chciał bym żeby było można dodać komentarz do zadania i całego projektu stworzyłem więc 2 tabele taskComments i ProjectComments i aplikacja działa, ale zastanawiam się nad innym rozwiązaniem, ponieważ dodanie komentarzy do innego modułu wymaga stworzenia nowej tabeli, co utrudnia modernizacje aplikacji myślałem na jedna tabelą z komentarzami w której będą sie znajdowały columny id_task i id_project kiedy komentarz będzie przypisany do zadania id_project zostanie puste, to rozwiązanie wydaje mi się trochę lepsze ale nie wiem czy zostawianie pustych pól nie będzie problematyczne przy dodawaniu gdyby baza rozrosła i komentarze były by dodawane do kilkunastu modułów. I tu moje pytanie jak zgodnie z dobrymi praktykami przetrzymywać komentarze w bazie danych zarówno dla zadań jak i projektów.

Proszę również o polecenia książki dotyczącej projektowania baz danych

1 odpowiedź

0 głosów
odpowiedź 5 stycznia 2019 przez rafal.budzis Szeryf (86,520 p.)
wybrane 5 stycznia 2019 przez pp2k22
 
Najlepsza

Najlepiej zrobić relacje wiele do wielu :) 

Robisz jedną tabele dla komentarzy a następnie dwie tabele łącznikowe gdzie będą zawsze dwa ID.

1 tabela comment_to_task
z polami (id_task i id_comment)

i druga  tabela comment_to_project
z polami (id_project i id_comment)

dzięki temu twoja tabela z komentarzami bedzie bardzo prosta i przejrzysta :) a tabele łącznikowe będą szybkie i łatwe do utrzymania bo nie muszą mieć pola ID. Zakładasz tylko klucz na obie kolumny, Ponieważ nie można przypisać komentarza dwa razy do tego samego projektu.

Niestety w tym podejściu nie unikniesz dodawania tabel za każdym razem gdy komentarze pojawią się w nowym miejscu. Ale bedzie ci łatwiej przebudować strukturę tabeli z komentarzami w przyszłości jeśli zajedzie taka potrzeba.

komentarz 5 stycznia 2019 przez rafal.budzis Szeryf (86,520 p.)
Kolejny pomysł który wpadł mi do głowy to zrobić dwie tabele

coments i commentsGroup

tabela komentarzy miała pola (id, id_group, text, inne)

tabela z grupą komentarzy miała by tylko pole (id) ewentualnie można pokusić się do jakieś inne pola

teraz nie zależnie gdzie są komentarze będą miały swoją unikalną grupe. taką grupę (sam ID) tworzysz podczas tworzenia projektu i tasków na następnie zapisujesz ID grupy komentarzy w tabeli tasków i tabeli projektów zależnie co stworzyłeś :)

Podobne pytania

0 głosów
1 odpowiedź 803 wizyt
pytanie zadane 17 października 2016 w PHP przez wanderer Gaduła (3,710 p.)
+1 głos
3 odpowiedzi 1,274 wizyt
pytanie zadane 7 lipca 2020 w PHP przez Samek2222 Początkujący (440 p.)
+1 głos
1 odpowiedź 549 wizyt
pytanie zadane 28 lutego 2021 w SQL, bazy danych przez Paweł Sypek Początkujący (440 p.)

93,773 zapytań

142,731 odpowiedzi

323,383 komentarzy

63,376 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...