Witam serdecznie, postanowiłem dla poćwiczenia umiejętności napisać forum od podstaw.
Wiadomo najważniejszy projekt, dlatego proszę o opinię czy moje rozumowanie jest poprawne/co trzeba zmienić.
W bazie będzie 5 tabel:

User <- przechowuje dane użytkownika
id (int primary key)
username (unikalna nazwa użytkownika)
password
email
(kilka dodatkowych danych związanych z profilem)

category_list <- przyporządkowuje tematy do konkretnych kategorii
id
name (nazwy kategorii)

topic_list <- przechowuje wszystkie tematy
id
name (nazwa wątku)
author (autor wątku)
created_date (data stworzenia)
last_edit_date (data dodania ostatniego wpisu)
last_edit_user (nazwa użytkownika, który jako ostatni udzielał się w dyskusji)
category_topic (Nazwa kategorii tematów na forum do którego dany wpis należy, klucz obcy [id] z tabeli category_list))

Post <- przechowuje konkretne wypowiedzi w wątkach
id
topic_name (Nazwa tematu na forum do którego dany wpis należy, klucz obcy [id] z tabeli topic_list)
author (autor wątku, klucz obcy pobierany z tabeli user)
created (data utworzenia)
edited (data ostatniej edycji)
content (zawartość wpisu)

roles <- uprawnienia użytkowników
id
user_id (id użytkownika którego dane uprawnienia mają dotyczyć, klucz obcy [id] z tabeli users)
edit
remove
add
...


Gdy mam zaplanowaną bazę danych muszę odpowiednio opisać relację do nich (potrzebne w adnotacjach symfony2)
niestety tutaj wysiadam pojawia się problem, bo nie wiem jak najlepiej podejść do tego.