2012-05-02 12 views
1

私のサイトでは、多くの数学的および科学的表記法を入力する必要があります。当然ながら、将来の使用のためにこのサーバー側を保管する方法が必要です。これは私の理想的な行動コースです:ユーザが数学記号の有無にかかわらずテキストを入力し、入力が提出された後、データベースに適した形式に変換され、最後に、入力された数学、それはMathMLに変換する必要があります。 MathMLは、MathJaxによって読み取り可能な形式に変換されます。ユーザ作成のシンボリック数学をデータベースに保存するにはどうすればよいですか?

以前はデータベースに数式を格納することはなかったし、ユーザーがテキストで数式インラインを挿入できるようにしたいという事実にはいくつかの意味があります。何か案は?

+0

MathMLを保存できますか? –

+1

私はできると思いますが、私はデータベースにマークアップを保存したくないと思います。それは、それが生産現場でどのように行われているのでしょうか? – JayD3e

+0

私は知らないでしょう、私はdbに象徴的な数学を保存していません。 –

答えて

2

この種のものを正規化したいというのは理解できます。それも間違っています。

リレーショナルデータベースを使用するために、より意味のあるタイプに「展開」する必要があるのは、where句に表示されるものだけです。

あなたは(擬似コード:)

SELECT * FROM FORMULAE 
WHERE "/theta" in free_vars(FORMULAE.FORMULA) 
AND "bob" in FORMULAE.USERS; 

のように見えるのクエリを実行するすることが合理的だなら、あなたは、このようなクエリが効率的にデータ型を使用します。一方、データベースがストアド・フォーミュラで何らかの処理をしない場合は、最も有効な外部表現以外のものとの間で変換を試みないでください。これは、式を適切に表すマークアップです。

0

は、テキストとしてMathMLを格納します。 VARCHARに収まらない場合は、CLOBを使用してください。

+0

私のコメントはまだありますが、人々は実際にマークアップをデータベースに保存していますか?そうであれば、彼らは何とか方程式を解析して別のテーブルに格納しますか? B/c私はdbのMathMlと混在した大量のテキストを持つことは嫌いですが、それがそれを行う唯一の方法なら、私は仮定します。 – JayD3e

+0

[meta.math.stackexchange.com/](http://meta.math.stackexchange.com/)に問い合わせてください。 –

0

データベースにMathMLテキストとして保存することをお勧めします。そうすることで、挿入時にMathMLに一度変換し、アクセスするたびに変換する必要はありません(高速化)。

+0

そうだが、ユーザーがデータベースに入ったら、その数学をどのように編集するのだろうか?アスキーに戻す? – JayD3e

+0

ああ!あなたの元の投稿は式の編集について何も言わなかったので、あなたは「後で見る」とだけ言いました。 – Jarvis

関連する問題