数据库的设计解决办法
数据库的设计
1.评论:如何保证用户购买过商品才可以评论,必须只能评论一次,1件商品评论一次,当再次购买的时候,可以继续评论一次,就如:淘宝网的评论系统,说说你的思路.
2.文章页浏览次数:浏览的次数是如何统计的,难道其它的网站也是用数据库做的吗?每次浏览+1,如果量大的话,是不是给数据库系统造成压力? 如果不是,那是用什么统计.
------解决方案--------------------
2.日志文件追加写实现的,linux下专门开了一个服务,不停地追加,定时处理数据取的不同操作的访问量,最后生成excel通过自动邮件交给数据部门。这么一个流程。。。
1的话方法多了去了,不过效率、稳定什么的就不好说了,没试过。肯定是和数据库设计有关吧。
------解决方案--------------------
我回答你第2个问题,如果瓶颈在数据库那么可以采取memcache中间缓存的方式来缓存.每一个小时或者半个小时统一更新一次数据库.
------解决方案--------------------
1.评论:如何保证用户购买过商品才可以评论,必须只能评论一次,1件商品评论一次,当再次购买的时候,可以继续评论一次,就如:淘宝网的评论系统,说说你的思路.
这个问题比较简单,用户购买的时候是有订单的,评论之前查看一下这个用户是否在订单库里购买过该商品,如果有则查询一下购买数量,这样就可以限制评论次数了,评论完毕之后在订单库里做一个已经评论过的标记.
2.文章页浏览次数:浏览的次数是如何统计的,难道其它的网站也是用数据库做的吗?每次浏览+1,如果量大的话,是不是给数据库系统造成压力? 如果不是,那是用什么统计.
这个问题,我的做法是:采用缓存的方式,最常见的缓存方法是memcache和文件缓存,memcache好一点,文件缓存会给服务器造成IO的压力,推荐使用memcahce,当用户浏览的时候先读取缓存中是否有该文章的浏览次数记录,如果没有找到记录则建立针对该文章的一条记录,同时计数为1,下一次有人访问的时候再次读取缓存,让计数加1,当该文章的计数达到10次(次数你可以自定义)的时候就清理掉缓冲中该文章的浏览计数,同时把次数写入数据库.
基本原理就是:不到10次就存入缓存,到了10次清理缓存并更新数据库中的浏览次数.这样就是浏览数达到10次再重新操作一次数据库,有效的降低了数据库的压力.
------解决方案--------------------
首先想说的是数据库比你想象的要强大得多.
------解决方案--------------------
1.评论:如何保证用户购买过商品才可以评论,必须只能评论一次,1件商品评论一次,当再次购买的时候,可以继续评论一次,就如:淘宝网的评论系统,说说你的思路.
购买的时候会生成一个订单id对吧?把评论表和这个订单id对应上,每个id只能在评论表内评论一次
2.文章页浏览次数:浏览的次数是如何统计的,难道其它的网站也是用数据库做的吗?每次浏览+1,如果量大的话,是不是给数据库系统造成压力? 如果不是,那是用什么统计.
小应用可以直接数据库,大的话可以memcached,有个自增的接口,然后定时dump数据到sql即可
------解决方案--------------------
为什么总是想象数据库是不堪一击的呢?
如果用文件做载体,那么关系型数据库也是用文件存储数据的
如果用 memcached 作载体,那么 nosql 也是基于内存的
简单的操作文件或内存,貌似速度要快些。但你还需要用大量的代码来管理和解决冲突
综合效率就不如直接数据库了
------解决方案--------------------

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

要安裝 Laravel,需依序進行以下步驟:安裝 Composer(適用於 macOS/Linux 和 Windows)安裝 Laravel 安裝器創建新項目啟動服務訪問應用程序(網址:http://127.0.0.1:8000)設置數據庫連接(如果需要)

Visual Studio Code (VSCode) 是一款跨平台、開源且免費的代碼編輯器,由微軟開發。它以輕量、可擴展性和對眾多編程語言的支持而著稱。要安裝 VSCode,請訪問官方網站下載並運行安裝程序。使用 VSCode 時,可以創建新項目、編輯代碼、調試代碼、導航項目、擴展 VSCode 和管理設置。 VSCode 適用於 Windows、macOS 和 Linux,支持多種編程語言,並通過 Marketplace 提供各種擴展。它的優勢包括輕量、可擴展性、廣泛的語言支持、豐富的功能和版
