2011-07-26 58 views
1

我正在为网站编写一些书籍,其内容将通过数据库(MySQL)访问并显示在幻灯片上(使用PHP和JQuery)。这里的幻灯片是为特定幻灯片输出的一大块HTML数据。我应该如何构建这个数据库?

现在我想达到一定的简报式的技术,其中的段落和要点成为加入到幻灯片,例如:

幻灯片之一:

<p>Lorem impsum...</p> 

幻灯片2:

<p>Lorem impsum...</p> 
<p>Dolor sit amet...</p> 

换句话说,由于大多数幻灯片包含其他幻灯片中已有的文本,因此会出现大量冗余信息。那么是否有一种相当简单的方法来为此构建数据库,还是应该保存每张幻灯片的全文?

我现在所拥有的结构是:

books 
    id 
    name 

chapters 
    bookid references books.id 
    chapterno 
    chaptername 

sections 
    bookid references chapters.bookid 
    chapterno references chapters.chapterno 
    sectionno 
    sectionid references sectiontexts.id 

sectiontexts 
    id 
    text 

一个在这里例如另一个问题是,如果说一章有10张幻灯片和我删除幻灯片3,那么我将不得不改变部分号码第4-10节。

回答

1

我会保存每张幻灯片的全文。对于用户来说,在PowerPoint演示文稿中有后续幻灯片修改以前的内容是相当普遍的现象。同样,存储每张幻灯片所需的数据量实际上非常小,因为您正在处理文本数据,并且大小的增加非常小,以至于当对付复杂性增加幻灯片到上一张幻灯片关联设计。为每张幻灯片提供全文。

1

如果希望能够在一个地方对大块文本进行校正,并且在使用大块的任何地方都会出现校正,那么您应该将块存储为单独的项目并在主体中引用它们在显示/渲染时将所引用的项目放入主体中。

至于被删除的段号,只需存储一个十进制值(2.0,2.5,3.0),它在排序时产生出现的项目的顺序,但是可以即时计算“显示号码” 。这样,空位并不重要,您可以轻松插入一个部分,例如插入节4.0和节5.0之间的节将被赋予4.5,插入4.0和4.5之间的另一节将被赋予4.25,依此类推。

+0

有趣的解决方案,谢谢。 –

相关问题