對于關(guān)系數(shù)據(jù)庫,可以設一個這樣的字段,這個字段里存放了李四的所有好友,每個好友以“,”分隔;
創(chuàng)新互聯(lián)致力于網(wǎng)站建設,網(wǎng)站制作設計,營銷網(wǎng)頁定制網(wǎng)站建設,成都外貿(mào)網(wǎng)站建設,企業(yè)網(wǎng)站建設,小程序定制開發(fā),網(wǎng)站SEO優(yōu)化,網(wǎng)站設計制作案例豐富,是成都做網(wǎng)站公司和建站公司,歡迎咨詢。
對于非關(guān)系數(shù)據(jù)庫,比如說健值數(shù)據(jù)庫,可以使用一個大型的HASH表來存放,李四的所有好友以一個鏈接的方式串起來 。
比如:
linker表示鏈接
hash(李四)=linker(王五、張三、黃光、李明)
采用Redis進行數(shù)據(jù)存儲,主要包括頻控、限流、用戶表、在線用戶表、聊天消息表(redis list實現(xiàn)消息隊列)、好友表(TODO)
CheckFrequency(userId uint64) bool
返回true檢查通過,false觸發(fā)頻控
visited_{user_id} 3觸發(fā)
離線用戶key為空
數(shù)據(jù)結(jié)構(gòu):key-value
取值:
1=在線
2=離開
3=隱身(VIP功能)
數(shù)據(jù)結(jié)構(gòu):list
數(shù)據(jù)結(jié)構(gòu):hashmap
想要私聊,最簡單的就是
數(shù)據(jù)表中,必須存在4個字段,
私聊
1) 發(fā)送人 2)發(fā)送時間 3)接收人 4)接收時間
群聊
1) 發(fā)送人 2)發(fā)送時間 3)空 4)空
這個就能通過發(fā)送人與接收人來匹配是否有私聊記錄
接收人為空就代表群聊
設計一張瀏覽文章表,字段用自增id、文章id、用戶id、瀏覽時間、ip、客戶端信息。。。
用戶每訪問一次文章就向表中添加一條數(shù)據(jù)
查詢某文章瀏覽量就是select count(*) from 瀏覽表 where 文章id=:id
查詢某文章用戶總量 select count(*) from 瀏覽表 where 文章id=:id group by 用戶id
1.首先要全面分析一下你的系統(tǒng)涉及到哪些事物對象,一般來說是為每種對象建立一張表。
2.然后是分析每個事物都有哪些屬性,每個屬性是什么特點,反映在數(shù)據(jù)庫中這個字段是什么類型。
2.然后分析各個事物之間的關(guān)系,哪個是“一”,哪個是“多”。如班級是“一”,學生是“多”,則要在學生表中添加一個字段來保存他所屬的班級。
最基本的就是這樣,其他就是一些優(yōu)化的問題。
建議你在網(wǎng)上找一些相關(guān)電子書進行系統(tǒng)的學些;然后就是可以下載一些程序,想dz,ecshop之類,如果讓你自己來設計數(shù)據(jù)庫你會怎樣做,然后打開程序看別人是怎么設計的;看多了就熟悉了。