不特定多数が入力するフォームにマークダウンエディタを付けた場合、データベースへ保存するデータ形式は何になるのでしょうか？


**データベースへ、どういう形式のデータを保存すべきか分からないので教えてください**

  * 不特定多数が入力するフォームに、「マークダウンエディタ」もしくは「BBCodeエディタ」を付けたいと考えています
  * この時、データベースへはどういう形式のデータを保存するのでしょうか？

* * *

  * エディタで制限しているので、生HTMLをそのまま格納しても良い？
  * それとも、変換された「マークダウンコード」なり「BBCode」の方を保存するのでしょうか？
  * あるいは、どちらでも良い？
  * それぞれメリットデメリットがあれば教えてください




基本的にはMarkdownやBBCodeのまま保存するほうがメリットが多いと思います。

## 1. MarkdownやBBCodeのほうがHTMLよりコンパクト

比べてみれば分かりますが、一般的にはHTMLに変換するとコードが長くなってしまいます。  
変換しないほうが保存するときのサイズが少なくて済みます。

## 2. MarkdownやBBCodeの仕様が変更された時に、古いデータに対しても変更を反映できる

例えば、

`[url]http://ja.stackoverflow.com[/url]`

というBBCodeを

`<a href="http://ja.stackoverflow.com">ja.stackoverflow.com</a>`

というコードに変換していたのを、

`<a href="http://ja.stackoverflow.com"
target="_blank">ja.stackoverflow.com</a>`

に変えたいとなった時、BBCodeで保存していれば変換部分を書き換えればOKです。  
HTMLで保存してしまうと古いデータに反映させるのが面倒になります。

## 3. MarkdownやBBCodeからHTMLへの変換は容易だが、逆は困難

MarkdownならMarkdownのまま表示したりHTMLに変換して表示できますが、逆にHTMLをMarkdownにするのは面倒なためHTMLで保存するとデータの活用がしにくくなります。

* * *

HTMLをそのまま保存するメリットというのはあまり思いつきません。




基本的にはMarkdownやBBCodeのまま保存するほうがメリットが多いと思います。

## 1. MarkdownやBBCodeのほうがHTMLよりコンパクト

比べてみれば分かりますが、一般的にはHTMLに変換するとコードが長くなってしまいます。  
変換しないほうが保存するときのサイズが少なくて済みます。

## 2. MarkdownやBBCodeの仕様が変更された時に、古いデータに対しても変更を反映できる

例えば、

`[url]http://ja.stackoverflow.com[/url]`

というBBCodeを

`<a href="http://ja.stackoverflow.com">ja.stackoverflow.com</a>`

というコードに変換していたのを、

`<a href="http://ja.stackoverflow.com"
target="_blank">ja.stackoverflow.com</a>`

に変えたいとなった時、BBCodeで保存していれば変換部分を書き換えればOKです。  
HTMLで保存してしまうと古いデータに反映させるのが面倒になります。

## 3. MarkdownやBBCodeからHTMLへの変換は容易だが、逆は困難

MarkdownならMarkdownのまま表示したりHTMLに変換して表示できますが、逆にHTMLをMarkdownにするのは面倒なためHTMLで保存するとデータの活用がしにくくなります。

* * *

HTMLをそのまま保存するメリットというのはあまり思いつきません。

