I'd much rather have options for different editors, and store the resulting HTML in the database (after being purified by something like HTMLPurifier) which allows the post to be immediately displayed without waiting on a BBC parser every time.

Fustrate,Downside to that is you either have outdated html when a bbc changes or is added/removed, you have to update all those cached entries or you have to invalidate all of those requiring them to be recached on next page view.

Ideally the last one would be the method I would prefer be done if that is how we do it. Honestly, if we did store data like this, I would prefer a separate table from the messages table. A simple id_msg and body.

If a BBC or other type of markdown changes, that doesn't bother me. The post will display as it did when it was written. You could also store the type and version of what it was created with (in that separate table) so that they can be upgraded as the editors are upgraded.