2011-07-26 59 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

有趣的解決方案,謝謝。 –

相關問題