簡單用戶表 tb_user:
userid , username
用戶詳細信息表 tb_userinfo
userid , email , homepage , phone , address
把用戶信息分開的目的就是保證經常查詢的數據在一張表,其它信息放到另一張表
論壇主題表 tb_bbs
bbsid , userid , title , ip , repleycount , replyuserid , createtime , lastreplytime
論壇內容標 tb_bbs_content (此表可按照bbsid進行分表存儲)
bbsid , content;
論壇回復表 tb_bbs_reply (此表可按照bbsid進行分表存儲)
replyid , bbsid , userid , content , replytime , ip
❷ 如何使多個論壇共用一個MYSQL資料庫
用戶資料庫在論壇中是可以獨立備份的,備份方法:
論壇後台——站長——資料庫,備份所有ucenter數據表,也就是用戶數據。
其他DZ論壇搭建完成以後,可以上傳用戶資料庫,將備份文件使用FTP上傳至網站所使用的主機上,在論壇後台——站長——資料庫,選擇恢復資料庫,選擇ucenter數據表,提交即可實現兩個論壇共用一個用戶資料庫。
如果有第三個、第四個論壇都是這樣做。
如果多個論壇使用同一個網站資料庫,只要在搭建論壇的時候填寫共同的資料庫信息即可,當然前提是資料庫足夠大,可以供多個論壇使用。
❸ Mysql資料庫設計
簡單用戶表 tb_user:
userid , username
用戶詳細信息表 tb_userinfo
userid , email , homepage , phone , address
把用戶信息分開的目的就是保證經常查詢的數據在一張表,其它信息放到另一張表
論壇主題表 tb_bbs
bbsid , userid , title , ip , repleycount , replyuserid , createtime , lastreplytime
論壇內容標 tb_bbs_content (此表可按照bbsid進行分表存儲)
bbsid , content;
論壇回復表 tb_bbs_reply (此表可按照bbsid進行分表存儲)
replyid , bbsid , userid , content , replytime , ip
❹ 最後一個訪問該貼的用戶mysql語句怎麼寫(論壇的資料庫設計)
你好,這個問題需要提供一下對應的表結構,相同的功能,是可以有很多種實現的。可以有多種表結構設計方式,查詢sql自然也就不同了。
❺ 一般BBS論壇的資料庫應該怎樣建啊
設計一個BBS論壇,該系統的用戶分別是:用戶和系統管理員。不同的用戶擁有不同的許可權,各自完成各自的管理功能,不同的用戶看到不同的系統功能。用sql server2000創建後台資料庫,然後利用JSP技術編寫程序實現對資料庫的操作,按照要求完成所有的功能和模塊。
用戶的主要功能模塊包括:
(1)用戶注冊與登陸
(2)查看帖子,查詢歷史帖子
(3)發布帖子
系統管理員的主要功能模塊包括:
(1)用戶管理
(2)後台資料庫維護
(3)論壇信息的分類管理
2、主要資料庫表單
(1)登陸用戶基本信息表單
主要欄位有:用戶編號、用戶呢稱、真實姓名、性別、出生日期、電子信箱
(2)content數據表(每篇文章的詳細信息)
主要欄位有:id編號、文章標題、是否回帖、文章作者、發表時間、正文
(3)board數據表(各個不同討論區信息)
主要欄位有:討論區中文描述名、討論區版主要id、不同討論區文章總數
(4)保存被封id數據表
主要欄位有:id,被查封用戶的id
❻ MYSQL資料庫的物理設計都包括哪些內容,怎麼設計
Log File物理結構
log block結構分為日誌頭段、日誌記錄、日誌尾部
Block Header,佔用12位元組
Data部分
Block tailer,佔用4位元組
Block Header
這個部分是每個Block的頭部,主要記錄的塊的信息
Block Number,表示這是第幾個block,佔用4位元組,是通過LSN計算得來的,佔用4位元組
Block data len,表示該block中有多少位元組已經被使用了,佔用2位元組
First Rec offet,表示該block中作為第一個新的mtr開始的偏移量,佔用2位元組
Checkpoint number,表示該log block最後被寫入時的檢查點的值,佔用4位元組
❼ 論壇的資料庫怎麼設計
常用的論壇設計方法,總結如下:
一 分割思想:
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 定期對表進行轉儲
❽ 我要做一個簡單的jsp論壇,用的是mysql資料庫,誰能幫我設計數據表,跪謝!!
BBS資料庫,需要以下表:
USER表,如果不與你現有的俱樂部、博客等使用同一個用戶信息資料庫,那麼需要設計一個獨立的USER表,保存用戶名、密碼、密碼保護問題、密碼保護問題回答、注冊時間、最後一次登錄時間、積分等
TITLE表,存放所有帖子的主題帖,一般有用戶、時間、標題、內容等
REPLY表,存放所有帖子的回貼,一般有用戶、時間、內容等
為了提高效果,建議單獨存放一個信息表MSG(MID,BODY),MID是自動編號的序列類型欄位作主鍵,BODY是TEXT類型的消息內容,這樣TITLE和REPLY中都不保存帖子的內容,只存放帖子的MID。
❾ 如何用mysql設計一個論壇資料庫
在控制台根目錄下打開sqlserver企業管理器,新建sqlserver組,根據自己的情況進行選擇;然後新建sqlserver
注冊,進行對sqlserver的連接。准備妥當後,下面就開始了:
首先打開數據轉換服務,新建包,打開dts界面,在連接中選擇數據源進行配置。再選擇將要轉換到的目的文件,這里我選的
textfile(destination),選擇好文件的存放位置之後,我們來新建一個任務。這里我們只選擇轉換數據任務,將帶有「選擇源連接」「選擇目的連接」的滑鼠分別選中數據源和目的之後,我們對新生成的連接進行定義,在其屬性中將源,目的,轉換依次定義。
執行任務,提示成功。保存任務。然後在新建的任務上導出數據,有向導提示,其中一項選擇「從源資料庫復製表和視圖」。
這一步已經把數據導出到目的文件中。
下一步在mysql中新建表,與將要導入的結構保持一致時,直接選取「從文本文件中提取數據,插入到數據表:」,將選項添好後,「發送」就可以了,瀏覽一下,數據已導入了。若要導入的表已經存在,且屬性名也不同,這時就先建一個與要導入的數據相同結構的表並導入數據(按剛才的進行就可以了),然後在mysql中導出「數據和結構」,得到sql語句,將其在文本文件中編輯,利用文本編輯器的替換功能,將表名修改,列名加入,最後將其粘貼在要導入表的執行sql語句的地方,執行一下,數據便導入了。
❿ 關於論壇型網站的mysql資料庫構建問題
不用那麼多表,欄位控制就可以了,一個表中可以有多個欄位:主題貼表:創建主題用戶編碼,主題編碼,子貼編碼,主題內容;子貼表:子貼編碼,發表子貼用戶編碼,子貼內容;用戶表:用戶名稱,用戶編碼,年齡。。。。