聊天室——MYSQL建表
文章目錄
- 前言
- 1. 用戶數據表——UserData
- 2. 好友列表——FriendsList
- 3. 未讀消息列表——OffLineMes
- 4. 群成員列表——GroupList
前言
在進行聊天室項目以前,我從來沒有接觸過mysql,但是mysql在聊天室的開發過程中起到了非常重要的作用;我們許多功能的實現都需要依靠數據庫,畢竟我們的server不可能一直運行,有時一個功能實現的關鍵就在于數據表。
聊天室的建表我也是根據整體服務器的架構來進行
首先我們需要把每一個用戶的基礎信息記錄下來,
1. 用戶數據表——UserData
在聊天之前,我們需要先有好友列表,
2. 好友列表——FriendsList
關于好友列表,我們可以給每一個用戶創建一個數據表,這個表的名字為這個用戶的用戶名"username"
其中的username表示好友或群的id,第二列的num表示有一些額外的含義,借助num可以幫助我們完成許多的其他的功能。
比如:0 代表被屏蔽消息的好友, 1 代表普通的好友, 2 代表這是一個群…
但是這種建表方法有一個很大的缺點,當注冊的用戶量很多的時候我們的數據庫會變得很丑陋,那么為了避免這種情況,我們就需要修改建表的方式以及存儲的思路。
通過這樣的建表方式可以把互為好友關系的兩個用戶放到一行里,避免了每一個用戶建一個表,第三列的type欄里依舊可以通過不同的數字來表示不同的屬性。在檢索好友列表時可以使用這樣的語法:
其他各種功能也可以依靠這個表來實現
3. 未讀消息列表——OffLineMes
當好友列表已經創建好的時候,就可以輸入好友的用戶名開始聊天了。那么在聊天中,聊天記錄的存儲就需要一個數據表來記錄,
如果對方處于離線狀態的話,我們未被接收的消息應該存儲到一個單獨的表里,
在處理完這條未讀消息之后,我們應該及時的將這條消息刪除
4. 群成員列表——GroupList
與好友列表一樣,我們可以為每一個群聊建一個數據表,用存放這個群的群成員。
這是最為直觀的一種建表方式,我們可以很清晰的知道這個群組里都有哪些成員。但是數據庫是用來存儲數據的,而不會給用戶去看,所以在數據量較小時,我們沒有必要去考慮數據庫復雜度的問題。而且與好友列表一樣,當創建群聊的人數越來越多之后,整個數據庫會變得非常的難看。
同樣,第三列數據表示該username在groupname里的職位。
這樣建表不僅數據庫會變得很整潔,在實現一些后續功能時也會容易很多,而不用在各個數據表之間嵌套查詢。
關于C語言操作MYSQL可以參考我的這篇博客:
https://blog.csdn.net/qq_51665789/article/details/119350338?spm=1001.2014.3001.5501
總結
以上是生活随笔為你收集整理的聊天室——MYSQL建表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机软件编程应聘ppt,计算机软件技术
- 下一篇: 关于用C#实现宽带的连接