設(shè)計一張瀏覽文章表,字段用自增id、文章id、用戶id、瀏覽時間、ip、客戶端信息。。。

專注于為中小企業(yè)提供網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)漢陰免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
用戶每訪問一次文章就向表中添加一條數(shù)據(jù)
查詢某文章瀏覽量就是select count(*) from 瀏覽表 where 文章id=:id
查詢某文章用戶總量 select count(*) from 瀏覽表 where 文章id=:id group by 用戶id
前邊介紹了負載均衡,mysql同步,接下來介紹tp6分布式部署多個數(shù)據(jù)庫,實現(xiàn)讀寫分離。
tp6的分布式部署讀和寫仍然是一個系統(tǒng),這里我們分開操作,給用戶展示的就是從數(shù)據(jù)庫,后端添加文章就是主庫,然后同步到從庫。
1、配置數(shù)據(jù)庫鏈接參數(shù)
目標:實現(xiàn)隨機使用數(shù)據(jù)庫展示信息,只是讀操作。
測試:前臺可以讀取表中內(nèi)容(存放的不一致),查看是否是隨機顯示的。
打開.env文件進行編輯
說明:
2、編輯database.php
找到deploy設(shè)置為1分布式部署,下邊不要改,都是讀,寫入的也就是后端的我們單獨建站連接主庫。
配置完成,tp6使用的是mt_rand取隨機數(shù)判斷使用哪個數(shù)據(jù)庫。
3、數(shù)據(jù)庫交互寫操作
比如瀏覽量沒必要每次都去更新數(shù)據(jù)庫,可以先使用redis緩存,存夠1000的整數(shù)倍,再去更新數(shù)據(jù)庫。
4、后臺獨立,也就是寫
可以前后端分離,單獨做一個網(wǎng)站(沒有前端)使用ip訪問或者獨立的域名連接后臺。
5、上傳附件(jquery ajax跨域上傳)
使用了nginx負載均衡,肯定是多個一樣的網(wǎng)站,如果圖片存放到一個站,別的就不能訪問了,可以單獨設(shè)置一個附件(壓縮包,圖片等)服務(wù)器,可以使用二級域名連接,這就要求我們上傳附件的時候,是上傳到附件服務(wù)器。
jqueryURL
API控制器apdpic方法
說明:
也可以先傳到后臺服務(wù)器然后使用(php)ftp上傳,或者是通過curl上傳到附件服務(wù)器,感覺那樣畢竟麻煩,直接設(shè)置跨域會比較簡單。
也測試了使用jsonp跨域,但是不能上傳附件。
6、thinkphp6實現(xiàn)讀寫分離(在一個站點)
我個人是不喜歡這樣的,負載均衡應(yīng)該是均衡地讀,也就是前臺單獨一個站點,后端的寫是另一個獨立的站點,看個人喜好吧。
獨立后臺的優(yōu)點:可以提升安全性,因為我們的后臺網(wǎng)址是不公開的,避免用戶猜測一些后臺的信息。
.env配置按照1所述編輯,默認第一個是主庫。
database.php
愿大家在新的一年心想事成,萬事如意!!!
可以提供簡單的方法:(基于你用的是tp,對于做cache緩存也不影響統(tǒng)計,畢竟是訪問了控制器方法)
第一:當訪問這個頁面的時候,對應(yīng)的有控制器,在控制器中做一個操作,每被訪問這個頁面一次給數(shù)據(jù)庫那個字段加1(這個不精準)
第二:獲取訪問頁面人的ip地址,在數(shù)據(jù)庫存記錄,每此訪問此頁面也就是控制器 就做同樣的操作,前提是判斷這個人的ip是否存在,存在證明已訪問過。(稍微精確點)
當然還有不少其他的方法,這里是比較簡單的。希望可以幫助到
先給儲存相應(yīng)文章的數(shù)據(jù)表增加一個記錄訪問量的字段。
1, 可以每訪問一次,字段數(shù)量加一,但是這樣會不準確,因為只要刷新一下,就會記錄一下。
2, 為了防止上面的情況發(fā)生,可以記錄訪問者的IP地址,重復(fù)的IP地址訪問,只記錄一次。
3, 但是,一個IP地址,只記錄一次,也有問題,比如,一個局域網(wǎng),多個訪問者,共用一個IP地址,這樣也會記錄不準確。所以最好,一個IP地址一定時間內(nèi)訪問記錄一次。這樣相對好一點。
4, 不過,即使記錄IP地址,但是也有可能有惡意的用戶通過切換IP,或者通過刷票軟件來刷訪問量。這些問題,還需要更深的研究一下,怎么應(yīng)對。
比如:
?php
$ip = $_SERVER['REMOTE_ADDR'];
//循環(huán)對比數(shù)據(jù)表中儲存的IP,如果IP存在,不再記錄
$query = mysql_query("select * contetns where ip = '".$ip."'");
if(mysql_num_rows($query) 0){
//IP存在
}else{
//記錄訪問量
}
?
如果你不需要記錄每次訪問的詳細信息,可以不用記錄每一次訪問,那樣數(shù)據(jù)庫會非常龐大,而且統(tǒng)計也會很慢。
簡單的方法是就是只要一條記錄,用四個字段分別累計本日、本周、本月、本年、總共的訪問數(shù),每次訪問的時侯對這些字段加1,另外一個字段記錄最后一次更新的日期,如果最后更新日期不是本日,就在加1前把本日字段設(shè)置為0,本周、本月、本年字段類似處理即可。
$sql = "update news set hit_count = hit_count+1 where id = " . $id;
$db-execute($sql);
網(wǎng)頁題目:瀏覽量php數(shù)據(jù)庫 php查詢數(shù)據(jù)庫數(shù)據(jù)
鏈接URL:http://chinadenli.net/article4/dodpeoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、面包屑導(dǎo)航、動態(tài)網(wǎng)站、網(wǎng)頁設(shè)計公司、手機網(wǎng)站建設(shè)、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)