乙個軟體是怎麼儲存使用者資訊的呢?

時間 2021-05-06 16:19:06

1樓:人工的智慧型

輪子哥已經簡要的給你回答了,但是也太簡略了有沒有以至於我估計答主你看完了還是一臉懵逼。所以我給你稍微補充一下吧

使用者的資料確實是存在伺服器上,答主你可以想一下,如果是你做程式你如何長期儲存這些資訊?

你可能第一想法是弄個文字檔案存著吧!大不了第一行寫名字,第二行寫出生日期啊,第三行寫QQ號碼啊這樣以此類推吧啦吧啦…

最後軟體需要顯示這些資訊的時候就到檔案裡來讀取嘛!讀進來就是字串解析一下就可以啦!

嗯嗯,這確實是一種實現方法,而且很多軟體初期就這麼搞的。但是後來發現使用者數量上去以後,或者使用者資訊複雜以後,這樣就不行啦,乙個是讀取檔案速度特別慢,第二是查詢特別慢每次都要全體遍歷一下累死程式有沒有,再者管理檔案也很麻煩,不能太大啦,同時多個執行緒同時讀寫也有問題啦等等。而且這個東西好多軟體都會用,沒必要大家都做一套這玩意吧太浪費了

因此,資料庫就應運而生啦,你可以把資料庫看成乙個高度強大的記錄本,不管是寫入使用者資訊或者讀取啊查詢啊都非常強大,還有很多複雜的查詢能力而且特別快。這樣就好辦啦,像QQ這種軟體,他們就可以在總部放乙個伺服器也就是效能強大的電腦啦,上面跑著資料庫框架等程式,來了使用者資訊他們就往資料庫裡存存存(可能存入到一種叫磁碟陣列伺服器的裡面,儲存能力很強大)

嗯,大體上,就是這樣。我不是做資料庫的,大體框架是這樣,細節可能有出入

2樓:Mark

qq這類給你用的都是客戶端。與客戶端相對的是伺服器端伺服器端也是寫好的程式,它負責將客戶資訊存在資料庫中。

所以客戶最終資訊是存在資料庫中的

3樓:

題主你這個問題問得很好啊, 當年我初學程式設計時,網路不發達,周圍也沒有業內人士,為這個問題卡住了快一年......

我們都知道記憶體裡的資料程式退出了就沒了,那顯然儲存資料要存到硬碟裡,Ok,程式退出時存一下,啟動時讀一下就行了,這是最單純的方法.

可是仔細想想就不對了,存到硬碟的什麼地方呢?

拿windows舉例好了,存C盤? 你怎麼知道使用者一定有C盤的? 萬一人家系統盤裝到D盤了呢?

那存到從系統API讀出來的第乙個盤? 你咋知道那是張軟盤還是一塊硬碟?

聰明的你一定想到辦法了, 一般我們有兩個選擇:

1.往登錄檔裡存.

2.往程式安裝目錄裡存.

3.往一些莫名其妙但是一定會存在的目錄存...

這幾個方法是早年間程式們最愛用的方法, 你windows系統總得有登錄檔吧? 既然你能開啟我這程式那你安裝目錄一定存在吧? ok,我就往這兩個地方存.

這樣的結果就是存的亂七八糟,各種軟體到處存,搞的檔案一堆一堆烏煙瘴氣.

而且這樣還有更壞的事,那就是許可權問題難以解決, 憑什麼就往安裝路徑裡存? 作業系統可不知道你是要遊戲存檔還是病毒惡意軟體篡改資料.

現如今作業系統已經強化了許可權控制,程式們不是隨便就能動某個目錄的,比如windows上的UAC,

在你往一些敏感路徑寫東西的時候是要報警的.現在作業系統會給你乙個API,通過呼叫它可以獲得系統針對應用程式的儲存需求而提供的特定路徑,這個路徑一般都存在(不存在的話這哥們的電腦也離重灌不遠了),而且程式可以隨便訪問.

ok,那麼現在假設你做了一款叫OO的聊天軟體,把好友資料全部存到了本地. 那麼馬上你就會接到使用者來電,說自己換了臺電腦好友全沒了!

這是多麼可怕的事情啊,但其實這種事以前不是沒有,QQ的聊天記錄曾經就是完全存本地的,換台電腦忘了拷貝, 前女友聊天記錄? Gone! 工作記錄? Gone!

那麼怎麼辦呢? 現在網速這麼快,很多軟體都直接把資料存到自己伺服器了?這樣即使你換台電腦,只要正常登陸賬號,你的配置檔案什麼的就全回來了.

4樓:新人說

你難道不知道客服這個東西嗎?

比如這個帶耳機的企鵝,它並不是在聽歌,也不是在學英語。

它其實就是在記憶使用者資訊

你可不要小看這麼小的乙個企鵝,它不僅記憶能力好,而且有各種變化功能。

那麼企鵝為什麼會有這麼強的記憶能力呢?既能記住你的好友,也能記住你的聊天記錄,甚至還能記住標點符號。

從上面的圖案你應該發現了懷疑的地方,不管它怎麼變,不管氣候多炎熱,這個企鵝老是圍乙個圍巾。

沒錯,記憶的秘訣就是這個圍巾

這個圍巾就和機器貓的口袋一樣,只有帶了這條圍巾,再笨的人也會變成高手,不管演技技能,語言技能,記憶技能通通加成,比如:

你使用的第乙個自由開源軟體是哪個呢?

鐘xiao linux 在我剛上大學的時候,買的第乙個手機是Motorola的E2,周董代言的那個 裡面是linux2.4的古老核心,cpu還是當年Intel的Xscale系列 還沒賣給marvell 因為這個手機走上了Linux驅動開發的道路 魚與熊掌 Chrome 從版本6開始用,第乙個覺得不錯...

乙個軟體是如何誕生的?

ryan 先冒昧的問題一句,你是否是做軟體技術這行的?1.分析市場,看有沒有做該軟體的需求 2.給出初步的計畫 3.需求分析,深入研究,哪些流程可以融入電腦,並帶來給使用者帶來方便 4.編寫需求文件,該文件是需求分析的結果,讓所有的介面設計人員,開發,測試,專案管理人員都明白我們要做什麼 5.評審需...

軟體測試是乙個怎樣的崗位

測試員小何 自學並不推薦,除非你的自我控制能力 學習能力 思維邏輯能力超逆天,否則沒有太大成功的可能。決定自學程式設計的人,到後面90 的人選擇了放棄。剩下的10 其中一半因為每天自主時間不足進度緩慢,另一半糾結於繼續和放棄。最終大概也就1 的人能夠實現 學會 的目標。當然這個學會也是指能夠簡單應付...