集群聊天服務器---MySQL數據庫的建立

數據庫的建立表格

?user表

字段名稱字段類型字段說明約束
idINT用戶idPRIMARY KEY, AUTO_INCREMENT
nameVARCHAR(50)用戶名NOT NULL, UNIQUE
passwordVARCHAR(50)用戶密碼NOT NULL
stateENUM('online', 'offline')當前登錄狀態DEFAULT 'offline'

friend表

字段名稱字段類型字段說明約束
useridINT用戶idNOT NULL, 聯合主鍵
friendidINT好友idNOT NULL, 聯合主鍵

?AllGroup表

段名稱字段類型字段說明約束
idINT組idPRIMARY KEY, AUTO_INCREMENT
groupnameVARCHAR(50)組名稱NOT NULL
groupdescVARCHAR(200)組功能描述DEFAULT ''

?GroupUser表

字段名稱字段類型字段說明約束
groupidINT組idPRIMARY KEY
useridINT組員idNOT NULL
grouproleENUM('creator', 'normal')組內角色DEFAULT 'normal'

?OfflineMessage表

字段名稱字段類型字段說明約束
useridINT用戶idPRIMARY KEY
messageVARCHAR(500)離線消息(存儲Json字符串)NOT NULL

?數據庫配置信息(沒有具體實現)

// 數據庫配置信息
static string server = "127.0.0.1";
static string user = "root";
static string password = "123456";
static string dbname = "chat";// 數據庫操作類
class MySQL
{
public:// 初始化數據庫連接MySQL(){_conn = mysql_init(nullptr);}// 釋放數據庫連接資源~MySQL(){if (_conn != nullptr)mysql_close(_conn);}// 連接數據庫bool connect(){MySQL *p = mysql_real_connect(_conn, server.c_str(), user.c_str(),password.c_str(), dbname.c_str(), 3306, nullptr, 0);if (p != nullptr){mysql_query(_conn, "set names gbk");}return p;}// 更新操作bool update(string sql){if (mysql_query(_conn, sql.c_str())){LOG_INFO << __FILE__ << ":" << __LINE__ << ":" << sql << "更新失敗!";return false;}return true;}
};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/87481.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/87481.shtml
英文地址,請注明出處:http://en.pswp.cn/web/87481.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MongoDB 安裝使用教程

一、MongoDB 簡介 MongoDB 是一個高性能、開源的 NoSQL 文檔型數據庫&#xff0c;使用 BSON&#xff08;二進制 JSON&#xff09;格式存儲數據。適合存儲大規模、高并發的非結構化數據&#xff0c;常用于大數據、日志存儲、微服務架構中。 二、下載安裝 2.1 官網下載 訪問 …

FastAPI 小白教程:從入門級到實戰(源碼教程)

目錄 1. FastAPI 基本介紹 安裝 FastAPI 2. 簡單的 CRUD 示例 2.1 創建基本應用 2.2 添加 CRUD 操作??????? 3. 處理跨域請求 (CORS) 4. 普通案例&#xff1a;待辦事項 API??????? 5. 企業案例&#xff1a;認證和數據庫集成 5.1 使用 SQLAlchemy 和 JWT…

java中jasypt是用來做什么的?

思路&#xff1a; 簡要介紹Jasypt&#xff1a;一句話說明它的作用。配置解析&#xff1a;分別解釋password和algorithm的作用。工作流程&#xff1a;說明如何加密敏感數據并在配置文件中使用。安全提醒&#xff1a;強調密鑰管理的重要性。 最終回答&#xff1a; Jasypt&…

牛客周賽 Round 98

1.小紅與奇數 解題思路&#xff1a;如果給定的數是偶數, 由于1是任意正數的因子, 偶數1奇數 若給定的數是奇數, 1/自身, 都變成了偶數 #include <bits/stdc.h> using namespace std; void solve() {int x;cin >> x;if (x & 1)cout << "No" <…

(2)手摸手-學習 Vue3 之 變量聲明【ref 和 reactive】

手摸手-學習 Vue3 之 變量聲明【ref 和 reactive】 前言refreactive 前言 vue3 前端代碼開發過程中&#xff0c;必然會涉及變量聲明&#xff0c;會用到&#xff1a;ref、reactive 。本章節 進行講解說明。 演示的項目&#xff0c;經處理后的結構如下&#xff1a; ref 用途…

[Terence Tao訪談] 無限 | 關注模型 | 矢量場 | 策略性“作弊” | Lean

關注模型 改變視角真的很重要 無限&#xff1a;假設是球形的奶牛 陶哲軒&#xff1a;一個很好的例子是數學中的塞邁雷迪定理&#xff0c;于1970年代得以證明&#xff0c;它涉及在一組數字集合中尋找某種類型的模式&#xff0c;即等差數列&#xff0c;例如3、5、7或10、15、20。…

汽車v型推力桿總成三維5自由度性能及疲勞測試系統

V型推力桿總成裝置&#xff0c;通常設置在載重汽車中、后橋上&#xff0c;成對使用。其一端通過球面銷與車架鉸接&#xff0c;另一端則安裝在車橋上&#xff0c;通過關節軸承與車橋鉸接&#xff0c;其主要作用是穩定車橋&#xff0c;保持車橋的穩定位置&#xff0c;同時克服彈簧…

制動系統故障定義與診斷標準

核心定義&#xff1a; 制動不足 (Brake Insufficiency) 定義&#xff1a;制動系統產生的實際制動力低于預期制動力&#xff0c;但未完全喪失制動能力 關鍵特征&#xff1a; 制動距離增加20%以上 減速度低于預期值30%-50% 制動踏板行程異常增長 等效物理描述&#xff1a;&a…

server-rs

今天早上 看到有人 用cursor寫rust東西了 效果不錯遂嘗試寫一下web serverserver本身這個詞就不確指單單這一個東西在與cursor交流中,還是越來越明白了之前 沒有管過的一些"常識"一個業務服務之所以能“一直處理請求”&#xff0c;是因為有一個“東西”在背后做著持續…

python打卡day59@浙大疏錦行

知識點回顧&#xff1a; SARIMA模型的參數和用法&#xff1a;SARIMA(p, d, q)(P, D, Q)m模型結果的檢驗可視化&#xff08;昨天說的是摘要表怎么看&#xff0c;今天是對這個內容可視化&#xff09;多變量數據的理解&#xff1a;內生變量和外部變量多變量模型 統計模型&#xff…

Redisson的分布式鎖源碼分析2

文章目錄Redisson的讀寫鎖使用加鎖源碼分析釋放鎖源碼分析&#xff1a;Redisson一次加多個鎖RedissonMultiLock加鎖源碼分析&#xff1a;RedissonMultiLock釋放鎖源碼分析&#xff1a;RCountDownLatch介紹&#xff1a;RCountDownLatch源碼分析&#xff1a;RSemaphore分布式信號…

系統架構設計師論文分享-論軟件過程模型及應用

我的軟考歷程 摘要 2023年2月&#xff0c;我所在的公司通過了研發紗線MES系統的立項&#xff0c;該系統為國內紗線工廠提供SAAS服務&#xff0c;旨在提升紗線工廠的數字化和智能化水平。我在該項目中擔任架構設計師&#xff0c;負責該項目的架構設計工作。本文結合我在該項目…

云原生Kubernetes系列 | etcd3.5集群部署和使用

云原生Kubernetes系列 | etcd3.5集群部署和使用 1. etcd集群部署2. etcd集群操作3. 新增etcd集群節點1. etcd集群部署 etcd3.5官網站點: ?? https://etcd.io/docs/v3.5/op-guide/clustering/ ?? https://etcd.io/docs/v3.5/tutorials/how-to-setup-cluster/ [root@localh…

helm安裝配置jenkins

1、k8s1.28.2、helm3.12.0&#xff0c;集群搭建 查看節點運行情況 kubectl get node -o wide openebs部署情況 kubectl get sc -n openebs 2、添加Jenkins Helm倉庫 helm repo add jenkins https://charts.jenkins.iohelm repo update# 查看版本 helm search repo -l jen…

Wagtail - Django 內容管理系統

文章目錄 一、關于 Wagtail1、項目概覽2、相關鏈接資源3、功能特性 二、安裝配置三、使用入門1、快速開始2、兼容性 四、其它社區與支持1、社區資源2、商業支持 開發貢獻參考項目參考文獻 一、關于 Wagtail 1、項目概覽 Wagtail 是一個基于 Django 構建的開源內容管理系統&am…

Spring AI Alibaba 來啦!!!

博客標題&#xff1a;Spring AI Alibaba&#xff1a;深度解析其優勢與阿里云生態的無縫集成 引言 隨著人工智能技術的快速發展&#xff0c;越來越多的企業和開發者開始關注如何將 AI 技術融入到現有的應用開發框架中。Spring AI 作為 Spring 框架在 AI 領域的擴展&#xff0c;…

【論文閱讀39】PINN求邊坡內時空變化的地震動響應(位移、速度、加速度)場分布

論文提出了一種基于物理信息神經網絡&#xff08;PINN&#xff09;和極限分析上界定理相結合的巖體邊坡地震穩定性分析框架&#xff0c;重點考慮了邊坡中的預存裂縫對穩定性的影響。 PINN用來求解巖質邊坡內隨時間和空間變化的地震動響應&#xff08;位移、速度、加速度&#…

驅動開發系列59- 再述如何處理硬件中斷

在本文中,我們將重點討論編寫設備驅動程序時一個非常關鍵的方面:什么是硬件中斷,更重要的是,作為驅動開發者,你該如何準確地處理它們。事實上,大量的外設(也就是你可能會為其編寫驅動的設備)在需要操作系統或驅動程序立即響應時,通常會通過觸發硬件中斷的方式發出請求…

【藍牙】Linux Qt4查看已經配對的藍牙信息

在Linux系統中使用Qt4查看已配對的藍牙設備信息&#xff0c;可以基于DBus與BlueZ&#xff08;Linux下的藍牙協議棧&#xff09;進行交互。以下是一個實現方案&#xff1a; 1. 引入必要的庫和頭文件 確保項目中包含DBus相關的頭文件&#xff0c;并鏈接QtDBus模塊&#xff1a; …

企業客戶數據防竊指南:從法律要件到維權實操

作者&#xff1a;邱戈龍、曾建萍 ——上海商業秘密律師 在數字經濟時代&#xff0c;客戶數據已成為企業最核心的資產之一。然而&#xff0c;數據顯示&#xff0c;近三年全國商業秘密侵權案件中&#xff0c;涉及客戶信息的案件占比高達42%&#xff0c;但最終進入刑事程序的不足…