20

您将如何将格式化的文本块(换行符、制表符、列表等)存储在数据库(没有具体内容)中以在 Web (XHTML) 上显示,同时保持一定的抽象级别,以便数据可以用于其他应用程序或网站的结构是否会在未来发生变化?

4

2 回答 2

4

我会使用 XML 存储文档的结构,并且总是在将其显示在 Web 浏览器中之前应用一些 XSLT 转换。这样,信息可以适应不同的浏览器,或其他用途,如在普通 UI 中显示或导出到一些纯文本文档。

该结构必须是有意义的,而不仅仅是格式化信息。理想情况下,它将是一些特定领域数据模型的表示。

当然,如果有意义的信息是文档结构,那么没有什么能阻止您定义如下内容:

<document>
  <title>SomeTitle</title>
  <paragraph>Some Long paragraph text</paragraph>
</document>

在这种情况下使用 XML 的另一个优点是,如果您的数据库支持它(如 Oracle),您可以查询文本的内容。

我们假设文本不需要经常查询,或者内容实际上仅用于显示目的。否则,规范化数据库可能会更好。

于 2008-10-09T13:01:39.387 回答
4

您的问题中有两个想法略有冲突 - 将数据与内容分开以便可以重新利用,以及包括格式化数据。

格式化数据是数据的一部分,还是只是元数据?

我们以前没见过吗?它基本上似乎是一个 CSS / HTML 难题。

如果这些文本块符合已知的数据方案(如马里奥的回答所假设的那样),那么是的,我会接受他的回答,但重新阅读你的问题我会回答(并假设)你有一些格式,比如说,马里奥使用的段落标签?

按照这个想法,格式基本上是数据的一部分,而不仅仅是额外的,我建议采用类似 CSS / HTML 解决方案的东西。使用标准 XHTML 标签存储文本,为您的 CSS 做好准备。然后,当您想使用标准 UI(如在非 Web 应用程序中?)时,可以对其进行解析,并且只需剥离标签并根据需要进行替换。

当然,您可以编写自己的标记([myBitOfText #] 而不是 < span class="myBitOfText />),但您也可以从数据库中获得一个不需要重新调整用途或字符串操作的返回值。

于 2008-10-09T13:55:14.940 回答