Baza danych prostego forum

0

Witam.
Potrzebuję napisać prosty skrypt forum który będzie wyglądał mniej więcej tak:
Kategorie >> Podkategorie >> Temat >> odpowiedzi. Np:
Informatyka >> Programowanie C++ >> Tematy

Utworzyłem 4 tabele w bazie (MySQL):
**Table_Forum_Category **
Kategorie na forum w których znajdują się podkategorie
**Table_Forum_Sub_Category **
Podkategorie w których zakładane są posty.
Table_Forum_Post
Posty na forum.
**Table_Forum_Post_Comments **
Komentarze użytkowników

Wszystkie pola mam, teraz muszę jedynie powiązać tabele z czym mam trochę problem i chciałbym się zapytać czy moje rozwiązanie będzie okej.
Nie będę pisał wszystkich pól, rozpiszę tylko te najważniejsze:
Table_Forum_Category
ID_Cat

**Table_Forum_Sub_Category **
ID_SubCat
ID_Cat - klucz obcy wskazujący że podkategoria należy do X kategorii

Table_Forum_Post
ID_Post
ID_SubCat - klucz obcy wskazujący że post należy do X podkategorii

**Table_Forum_Post_Comments **
ID_PostCom
ID_Post - klucz obcy wskazujący że komentarz należy do X postu.

Czy takie powiązania będą dobre oraz czy w bazie oprócz tego że te pola tak ponazywam, jeszcze w jakiś sposób muszę zdefiniować że jest to klucz obcy? Klucze główne odznaczyłem jako PRIMARY KEY, do obcych też trzeba coś w zapytaniach pisać? Znalazłem coś takiego jak FOREIGN KEY np: FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
Tak będzie dobrze?

Pozdrawiam,
eL

0

Category i SubCategory bym wywalił na rzecz jednej tabeli:
CategoryId
ParentCategoryId
CategoryName

Przy czym ParentCategoryId dopuszczasz NULL, wtedy wiadomo, że dana kategoria jest niezależnym rootem.

Klucze główne odznaczyłem jako PRIMARY KEY, do obcych też trzeba coś w zapytaniach pisać? Znalazłem coś takiego jak FOREIGN KEY np: FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)

Naprawdę klepiesz całą bazę "z palca"? Raczej nie korzystam ale zdaje się, że MySQL Workbench pozwala narysować bazę i wygeneruje kod?

1 użytkowników online, w tym zalogowanych: 0, gości: 1