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 存储为文本。如果它不适合 VARCHAR,则使用 CLOB

于 2012-05-02T22:38:36.850 回答
0

我建议将其作为 MathML 文本存储在数据库中。这样,在插入时,您将它转换为 MathML 一次,然后每次访问它时,都不需要转换它(即:更快)。

于 2012-05-02T23:49:18.350 回答