1

私のサイトでは、ユーザーが大量の数学的および科学的表記法を入力する必要があります。当然、将来の使用のために、このサーバー側を保存する方法が必要です。これが私の理想的な行動方針です: ユーザーがテキストのチャンクを入力し、数学記号の有無にかかわらず、入力が送信され、データベースに適した形式に変換されます。入力された数学は、MathML に変換されます。MathML は、MathJax によって読み取り可能な形式に変換されます。

私はこれまで数学をデータベースに格納する作業をしたことがありません。ユーザーが数学をテキストとインラインで挿入できるようにしたいという事実は、いくつかの影響をもたらします。何か案は?

4

3 に答える 3

2

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

リレーショナル データベースを使用するために、よりセマンティックな型に "拡張" する必要があるのは、where句に表示されるものだけです。

(疑似コード :) のようなクエリを実行することが合理的である場合

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

次に、そのようなクエリを効率的にするデータ型を使用する必要があります。一方、データベースが格納された式に対していかなる種類の処理も行わない場合は、最も有用な外部表現 (式を適切に表すマークアップ) 以外のものとの間で変換しようとしないでください。

于 2012-05-02T22:56:18.560 に答える
0

データベースにMathMLテキストとして保存することをお勧めします。そうすれば、挿入時に一度 MathML に変換すれば、アクセスされるたびに変換する必要がなくなります (つまり、高速になります)。

于 2012-05-02T23:49:18.350 に答える
0

MathML をテキストとして保存します。VARCHAR に収まらない場合は、CLOB を使用します

于 2012-05-02T22:38:36.850 に答える