採模組化三層架構設計高效能 BBS 系統。
系統架構三層
a. 資料儲存層
- MySQL 儲存所有資料:用戶、文章、信件、訊息、系統資料
- 關鍵:資料庫規劃、是否輔以檔案儲存
b. 系統功能層 (核心業務邏輯)
多個平行模組,向下呼叫 MySQL API,向上接收請求回傳結果:
- 用戶模組:註冊、資料修改、權限變更、用戶查詢
- 版面模組:文章發表/讀取/刪除/標記、權限檢查 (對 DB 要求最高)
- 精華區模組:文章/目錄增刪移、權限檢查、目錄結構為難點
- 信件模組:發/讀/刪信、標記、新信通知
- 訊息模組:發送/接收/通知/回顧/存信
- 系統動態模組:上站人數、動態資訊 → 建議用共享記憶體
- 聊天模組:雙人聊天 (參考 ICQ)、結果存信、Telnet 相容
- 聊天室模組:開房間、權限、共享記憶體 vs DB
- 可擴展:活動看板等
c. 服務層 (協議適配)
依客戶端類型開發不同服務模組,最大化複用功能層:
- cq66 服務端:自訂協議、專用客戶端、可加密傳輸
- Telnet 服務端:狀態機模式、按鍵驅動、修改既有 bbsd 較難
- HTTP 服務端:CGI 方式、PHP 直連 DB 違反分層原則
關鍵技術難點
- 資料庫設計:MySQL 支援萬級表嗎?每用戶一表、每版一表、精華區結構複雜。但應優於檔案制,排序/快取可信賴 MySQL
- 文字欄位限制:MySQL 單欄 64KB,文章建議 2KB 分塊儲存。Telnet 讀取時只取需顯示塊,補償無法隨機讀取大欄位缺陷,但管理較複雜
開發規劃
優先用戶模組 + 版面模組,規劃好資料結構,易與現有 bbsd 整合。