當前位置:首頁 » 操作系統 » 資料庫設計論壇

資料庫設計論壇

發布時間: 2023-06-08 10:17:57

㈠ 用mongodb怎麼設計論壇這樣的資料庫

有效的數據模型是為應用服務的,設計構架的關鍵問題是文檔模型適合使用嵌入式模型(embed)還是使用引用模型(references)。
嵌入式數據模型(Embedded Data Models)
在MongoDB中,你可能將相關數據嵌入到一個單一結構或文檔,這些模式通常被稱為「非正規」模型,但是它充分利用了MongoDB富文檔模型的有點。
嵌入式數據模型允許應用程序存儲相關的信息在一條資料庫記錄中,這樣應用程序可能需要更少的查詢和更新來完成常規的操作。

㈡ 如何用mysql設計一個論壇資料庫

在控制台根目錄下打開sqlserver企業管理器,新建sqlserver組,根據自己的情況進行選擇;然後新建sqlserver
注冊,進行對sqlserver的連接。准備妥當後,下面就開始了:
首先打開數據轉換服務,新建包,打開dts界面,在連接中選擇數據源進行配置。再選擇將要轉換到的目的文件,這里我選的
textfile(destination),選擇好文件的存放位置之後,我們來新建一個任務。這里我們只選擇轉換數據任務,將帶有「選擇源連接」「選擇目的連接」的滑鼠分別選中數據源和目的之後,我們對新生成的連接進行定義,在其屬性中將源,目的,轉換依次定義。
執行任務,提示成功。保存任務。然後在新建的任務上導出數據,有向導提示,其中一項選擇「從源資料庫復製表和視圖」。
這一步已經把數據導出到目的文件中。
下一步在mysql中新建表,與將要導入的結構保持一致時,直接選取「從文本文件中提取數據,插入到數據表:」,將選項添好後,「發送」就可以了,瀏覽一下,數據已導入了。若要導入的表已經存在,且屬性名也不同,這時就先建一個與要導入的數據相同結構的表並導入數據(按剛才的進行就可以了),然後在mysql中導出「數據和結構」,得到sql語句,將其在文本文件中編輯,利用文本編輯器的替換功能,將表名修改,列名加入,最後將其粘貼在要導入表的執行sql語句的地方,執行一下,數據便導入了。

㈢ 論壇的資料庫怎麼設計

常用的論壇設計方法,總結如下:
一 分割思想:
1 資料庫切分:用戶庫、主題庫、回復庫
2 數據表水平切分:用戶庫1-n、主題庫1-n、回復庫1-n (比如按時間分)
3 分布式資料庫:每台計算機中都有DBMS的一份完整拷貝副本,並具有自己局部的資料庫,位於不同地點的許多計算機通過網路互相連接,共同組成一個完整的、全局的大型資料庫。
4 論壇功能可以進行分隔,不同的伺服器負責不同的功能
5 用主從資料庫,master是寫, slave是讀
6 把內容與其它信息分開,好處就是可以讓每個表的文件最小化,對資料庫操作壓力會減小,這樣保證每張表數據量很小,操作速度會快,也可以在這里使用緩存
二 索引:
針對是否建立索引有著一定的分歧:
我覺得建立索引還是很有必要的。理由如下:
1)建立索引可以加快檢索速度,對於論壇讀和寫的比例相差很大,用戶體驗當然是讀多寫少,所以綜合考慮還是要用索引,而且是加在常用的讀關鍵字上。
2)索引之所以會降低更新的速度,是因為更新還包括對索引的更新,從更新帖子10萬左右,這句話是說,我們可能對發帖標題,發帖內容,回復標題,回復內容這4個欄位做更新。需要注意的是,這四個欄位並不是用來建立表連接的欄位,為了優化查詢速度我們不會在這四個欄位上建立索引,所以從這道題目出發,我們建立的索引不會影響更新帖子的性能。只要被索引的列(例如回復表的標題ID)不被頻繁更新,即使索引所在地行的其它列被頻繁update,索引也不會被更新從而產生性能消耗,一張表一天30萬次的索引更新,因它引起的性能消耗小到即使資料庫安裝在奔騰3單核CPU下都能輕松承擔下來。
3)對於更新的速度慢的問題,我們有解決的方法,你提交更新了後,前台可以讓程序返回一個正確結果,後台開個線程非同步慢慢跟新資料庫就是了,反正更新成功的前提就是假設資料庫連接永遠正確並處於可靠狀態。在資料庫和用戶之間建立一個緩沖區。(如,將更新的數據放到內存中,達到一定數量的時候再統一更新資料庫。假如以100條為例,一旦內存中達到100條數據量將這100條數據統一入庫。減少insert操作)

三 緩沖:
讀的時候的緩沖:緩存路由表
主題緩存表(這個取每個區的前面100條記錄),一般來說負載最大的就是主題的第一頁,所以緩存表是個小表。

另外使用hibernate,在資料庫上面加了一層緩存。
生成靜態頁,緩存最熱,最新的帖子。
對於經常更新的數據都設計成單獨表 ,這樣可以最大程度的利用hibernate緩存
緩存常用的數據和表,利用緩存來將經常被訪問的帖子留在內存中,為每條緩存的記錄添加一個訪問時間,如果長時間沒被訪問就從緩存中刪除掉,
避免內存過大,每次用戶看帖的時候,首先檢索緩存中時候有需要的帖子,沒有的話再訪問資料庫,然後將資料庫返回的帖子信息存儲到緩存中。

寫的時候的緩沖:資料庫和用戶之間建立緩存,將更新的數據放在內存中,非同步操作的。所有的寫貼操作 放到一個隊列然後批量執行插入資料庫操作。

預估計的緩沖:假如用戶第一次打開某標題,那將此標題的相關的前100條數據緩存到客戶斷。這樣避開對資料庫的直接查詢,減少資料庫壓力。
四 代碼優化
1盡量避免表的連接約束通過代碼來實現約束 例如用戶id的驗證在用戶登錄時驗證這樣就可以把帖子表的用戶id外鍵去掉這樣就成了單表操作、查詢 而連接可以通過觸發來實現這樣最多是查詢了3個表而不是連接中的笛卡爾笛卡爾積 回復表的查詢限定每次查詢的記錄數例如限定10條其它的通過點擊觸發來操作"注代碼優化容易出現bug 原因有些開發工具本身有優化"
五 資料庫性能調優
盡量用硬體來代替軟體優化 原則就是能用硬體的盡量用硬體 比如磁碟陣列 RAID0 有條件用RAID10 加大內存 .避免小表上建索引 對論壇來說數據帖子和回復不是很重要 可以定期刪除一些垃圾帖子 樓主說的幾百萬條記錄的論壇對現在的資料庫管理系統和計算機來說永不著刻意的優化,定期維護打包備份資料庫就可以了
提高速度的關鍵:
1.建立合理的索引並在查詢時充分利用;
2.避免使用關聯,這樣避免整表掃描;使用關聯不如多次使用主鍵查詢來的快;
3.一些處理的功能盡可能放到內存中來做,比如組織主題和回復;
4.海量緩存(使用靜態頁面也是個不錯的做法)
5 定期對表進行轉儲

㈣ 做論壇對於視頻文件如何儲存,資料庫庫如何設計

1、正常創一個文件信息表,主鍵,文件名,文件真實名,文件存儲路徑,文件類型,關晌如冊橡棗聯表id,上傳時間。

2、存在資料庫中的肯定是文件的存儲路徑。取得時候就是通過路徑去取。

3、你上傳視頻文件,資料庫保存文件名字,路徑

4、全部轉換宴宏成二進制,存到資料庫中,或者存為url

㈤ 網上論壇的資料庫設計

:(1)論壇可以分為多個版塊,如C#版塊、C++版塊、Java版塊等,注冊用戶可以在版塊中發帖和跟貼。版塊的數量和名稱尚未確定。
(2)每個注冊用戶擁有一定數量的可用分和專家分,不區分是在哪個版塊的分數。
(3)每個用戶注冊時自動得到可用分3000分,發帖時可以設定這個帖子的分數是多少,分數從可用分中扣除。
(4)每次發帖可以設置的分數最大值為100。
(5)用戶每天第一次登錄時自動增加可用分20分,當天重復登錄不再增加可用分。
(6)發帖人問題得到滿意答復後結帖,結帖時根據跟貼用戶的回答,由發帖人決定給予的分數,跟貼人得到的分數記入其專家分。
(7)發帖人在這個帖子中給予跟貼人的分數總和不能超過發帖時設定的分數。
(8)發帖人不可以給自己專家分。
(9)用戶根據專家分的多少確定其用戶等級,如剛登錄時專家分為0分,為初級用戶;得到200分後為一級用戶;500分後為二級用戶……。用戶等級的名稱及分數段尚未確定。
(10)系統有超級用戶、大版主、分版版主三種管理員,超級用戶系統初始化時設定。
(11)每個注冊用戶都可以申請分版版主,申請後由注冊用戶投票,投票期為30天,支持票數達到最近30天登錄過的用戶數的10%以上,且反對票數不超過總投票數的30%,並由大版主或超級用戶審核後,獲得分版版主資格。
(12)超級用戶可以指定大版主,大版主不一定是分版版主,大版主可以有多名。
(13)每個版的分版版主可以有多名,版主可以刪除違反版規的帖子,帖子刪除後,發帖人發帖時扣除的可用分不再恢復;如果刪除的帖子已經結帖,跟貼人得到的專家分要扣除。
(14)對於分版版主無故刪除帖子的行為,用戶可以向大版主投訴,由大版主決定刪除是否違規;如果確屬違規刪除,則恢復以刪除的帖子,並恢復分數。
(15)對於投訴嚴重的分版版主,

熱點內容
我的世界空島世界伺服器地址 發布:2024-04-26 01:39:08 瀏覽:247
尼爾機械紀元加密 發布:2024-04-26 01:37:11 瀏覽:866
在控制台輸出sql語句 發布:2024-04-26 01:08:12 瀏覽:432
動畫java 發布:2024-04-26 01:02:40 瀏覽:12
得力文件夾5302 發布:2024-04-26 00:21:32 瀏覽:91
您的個人文件夾 發布:2024-04-26 00:03:12 瀏覽:67
睿雲伺服器功能介紹 發布:2024-04-25 23:59:51 瀏覽:571
標致5008怎麼連接安卓 發布:2024-04-25 23:25:08 瀏覽:794
安卓下載管理器哪個好 發布:2024-04-25 23:22:48 瀏覽:442
考試系統源碼php 發布:2024-04-25 23:09:46 瀏覽:136