如何在数据库中存储包含照片和格式的文章?

Rea*_*ues 11 html architecture database-design

看看Storehouse上的一些文章,比如这篇文章.它们很好,照片很丰富,这使它们很有吸引力,但它们不仅仅是文章.从我的角度来看,他们有照片和其他无关的组件使得它们更复杂,用于存储它们.简而言之,在数据库级别为个人站点或项目创建类似文章实现的最佳方法是什么?

通过这个,我的意思是说,我要写一篇文章,分为8段,其中一段是兄弟姐妹的孩子<section>,在这些部分之间会有各种不同布局的照片 - 一张视差照片,例如全页照片和画廊风格的查看器 - 甚至可能是引号.这产生了一个相当复杂的HTML结构,比明文文章更简单,文章可以简单地存储在数据库中,然后只在网页上的两个标签之间输出.如何以数据库和应用程序适当的方式存储所有这些信息,HTML标签,类名等?

我想出了一些想法,但我不完全确定最佳实践或每个选项的优缺点.

选项1:将所有内容以纯文本形式存储在数据库字段中.

这是最简单的,但也是最丑陋的.所有内容,图像标记,类名和所有内容都以纯文本形式存储在表格内的article_text字段article中.

选项2:将文章文本和格式存储在数据库字段中,然后将图像存储在另一个表中.

这是1和3的混合解决方案.基本上,您可以参考文章中的图像部分,如下所示:

{{ imageSection1 }}
Run Code Online (Sandbox Code Playgroud)

说,并让你的应用程序逻辑集成并编织成最终产品.这在数据库方面很容易,但在applogic方面却更加混乱.

选项3:分别存储所有内容.

每个段落都是表中的自己的条目article_collation,图像和注释以及引号存储在它们自己的独立表中.这似乎是分离应该单独存储的不同元素的最有效方法,但它会使程序逻辑变得模糊不清,并可能因此而变得不那么有效.


每个人都有重大问题IMO,我不知道该怎么做.输入?建议?是否有任何工具可以使这更容易?

小智 2

我非常喜欢使用 XML,然后将其动态转换为输出格式(使用 xslt 等)。这使您能够以强结构化的方式表示您的内容,但仍然有一些连贯的内容可供参考。这有助于版本控制、使用 diff 等工具,甚至将其打包并将其作为文件列表(而不是需要重新组装的数据库表)进行传输。

它还允许您的内容在未来的某些不基于 HTML 的系统(如 PDF 输出)中具有完全不同的用途。

看看 Martin Fowler 的文章: http://martinfowler.com/articles/writingInXml.html

有几个用于以 XML 形式发布内容的开放“标准”值得关注。 NLM很常见。我有这方面的经验,并且发现它非常(可能已经结束)完整。