標籤:

個人網站,資料庫如何設計存儲富文本文章比較好?

如果想用資料庫存儲文章的話,是直接存儲動態生成HTML文本,讀出後去顯示。還是存儲markdown內容文本,再通過讀取到的內容去動態生成HTML合理一些?

謝謝回答


當然是要保存原始數據,不然以後要修改怎麼辦?可以直接把markdown放資料庫里,最後在前端渲染就好了。


如果看過一些開源系統,就可以知道通俗的做法是將所有原數據全部以text或blob的數據類型存入到資料庫,一般情況下這些數據是通過富文本編輯器傳到後端,裡面包含了文本內容和HTML標記,甚至可以有css和js,css可以通過內聯或嵌入式的渲染方式。

那麼針對markdown而言,大同小異,可以將所有markdown標記性語言、文本內容、樣式統統存儲到DB。直接select出來即可。


是完全自主設計的前提下,你要考慮你的數據的組織形式和量,同時確定你使用的是關係型資料庫還是nosql

如果你的數據是內容格式分離的,比如類似latex的組織方式,那麼你大可以將內容和格式分開儲存,採取分段式的儲存方式最為穩妥,即頻繁更新的放資料庫,大量數據的存為文件,定時將資料庫和文件進行非同步的update即可。

有些數據是內容格式合一的,比如word,比如影音數據,這時候,大容量存儲+索引的方式比較好,這也是普通CMS常用的。

總結來說,總是有永存+緩存+索引的方式存在的。


存最原始的數據。至於如何渲染,另說……


誰能給點代碼示例嘛,光說太籠統:)


@卡拉迦迪斯 說的更複雜吧,你都用資料庫了還存文件幹啥?資料庫裡面兩個欄位,一個是 md 生成的 html,另外一個 md 的源格式。前端顯示的時候始終顯示 html,每次更改的時候使用 md ,然後更新 html 不就好了。


就我一個人覺得 存成文件……

然後資料庫里存文件地址 好嗎……

=================================

這樣會增加一次IO操作? 不過會減少資料庫的數據量?

到底怎麼好其實還不是特別明確……

這個需求 有點兒像CMS的功能……

可以參考下CMS的

不過主要還是不清楚富文本的數據量有多大……

===================================

展示部分如果是HTML的……

其實也可以完全仿照CMS,做成靜態的

這樣可能都不用查資料庫了,更友好一點兒?


你有時間搜mark down to html 直接render 一下就行了。

存儲的時候存md,緩存html。

這樣你debug的時候,如果render錯誤還能發現。。。


推薦閱讀:

想真正從基礎到深入地學習資料庫,但是市面上的數據過多,有什麼好的書籍,網站嗎?
Android 開發中為什麼很少使用 JSON 存儲數據?
如何從零寫一個kv資料庫?
區塊鏈和分散式資料庫有什麼本質不同?
設計的時候,如果去掉外鍵關聯,postgresql和mysql,哪個更有優勢?

TAG:資料庫 | MySQL |