bullitain boards are basic to begin with... but can get complicated if you add lots of extras...
at the core you are only storing a small bit of information
a message, a poster, a time, and a location in a thread:
simple one table...
done...
now all the complicated features are coming up with all the queries to search you database. You need to format your links to pass info between pages. This part simply has to do with your own tricky logic... you are going to need lots of different queries to pull out the information in different ways.... by thread, by user, in the correct posting order, or more complicated...
extras:
you will also need users, which you have, and then join the users with your posts in your queries so you can do things like show the posters name or the posters image....
if you want nifty smilies or pseudo-templating like [stuff][/stuff] you will have to write a small parser on top of that.... mostly just preg_replace()s or eregi_replace()s
like this board you could throw on private messaging, and logic to see what threads have messages posted after your last login.. etc etc... all extras
punchline:
message board = simple storage, complicated retrieval
maybe this is what you were looking for...