免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
工控機上位機軟件的開發(fā)歷程(三)

數(shù)據(jù)庫設(shè)計

首先在數(shù)據(jù)庫的選擇上,我們使用了SQL Server。在項目的開始階段,我們考慮過使用哪種數(shù)據(jù)庫,但很快就定下來了。使用SQL Server最大的原因是以前的項目就是用它,必須繼承下來。如果這是全新的項目,那估計選的還是SQL Server。如果用SQL Server跟MySQL去比的話,前者是商業(yè)性產(chǎn)品,估計會穩(wěn)定一點。我們對什么性能、大并發(fā)量這樣的需求是不強的,數(shù)據(jù)的安全和穩(wěn)定是最重要的。到了后面,上位機同時支持了SQLite。我們的上位機完成以后,我們發(fā)現(xiàn),上位機的安裝不到10秒,而數(shù)據(jù)庫的安裝需要半個小時以上。我感覺這是有點本末倒置的。支持SQLite之后,要使用我們的上位機,安裝變得十分簡便。當(dāng)然,我們還不敢把SQLite的版本放在一些重要項目上。

 

上位機使用的數(shù)據(jù)表主要有三個。

(1)采集數(shù)據(jù)表。

(2)設(shè)備信息表。

(3)因子信息表。

設(shè)備信息表和因子信息表的設(shè)計并不難,內(nèi)容我們也已經(jīng)在上一節(jié)里討論,這里就不贅述了。

采集數(shù)據(jù)表是用來保存測量的數(shù)據(jù)的,設(shè)計要點有:

(1)數(shù)據(jù)一般是一分鐘保存一條,如果保存10年以上的話,就會有五百多萬條數(shù)據(jù)。

(2)查詢的時候,會查分鐘數(shù)據(jù)、小時數(shù)據(jù)、日數(shù)據(jù)、年數(shù)據(jù)等。

(3)每個站點的因子數(shù)量是不一樣的,有的只有十個不到的因子,有的有兩三百個因子。

(4)設(shè)備是經(jīng)常發(fā)生變化的,有時候增加一臺設(shè)備,有時候換掉一臺設(shè)備,采集數(shù)據(jù)表的表結(jié)構(gòu)需要動態(tài)變化。

根據(jù)上面的需求,我們做了這樣的設(shè)計:

(1)一個數(shù)據(jù)用兩列存儲,一個存數(shù)值,一個存狀態(tài)。在存數(shù)值的時候,我們用了float類型,因為采集到的數(shù)據(jù)都是這個類型。但是我們在統(tǒng)計的時候,還有存儲大整數(shù)的時候遇到了問題。所以還是建議用double去存儲數(shù)據(jù)。

(2)列有時候多,有時候少,但數(shù)據(jù)庫不能沒有一個規(guī)定的格式。我們把列數(shù)定為100,也就是最多存儲50個數(shù)據(jù)。如果超過了50,我們使用分頁的方法。例如第38個數(shù)據(jù),它在第38列,第0頁。而第72個數(shù)據(jù),它在第22列,第1頁。這種設(shè)計其實在查詢的時候是比較復(fù)雜的,性能也是比較差的。但超過50個數(shù)據(jù)的站點并不多。

(3)在因子信息表里面,記錄了某個因子對應(yīng)采集數(shù)據(jù)表里的第幾列。要查詢一個數(shù)據(jù),必須結(jié)果因子信息表和采集數(shù)據(jù)表。

(4)當(dāng)設(shè)備、因子發(fā)生變化的時候,采集數(shù)據(jù)表里的數(shù)據(jù)不發(fā)生變化,只是因子信息表里的對應(yīng)關(guān)系發(fā)生改變。

 

在數(shù)據(jù)庫里加入頁的設(shè)計其實是不太好的,我們建議按照下面的設(shè)計:

(1)最初的列數(shù)是0,當(dāng)添加因子的時候,動態(tài)添加列。這樣的話,在首次改變結(jié)構(gòu)的時候可能會慢一點,但后面的查詢會變得簡單。

(2)列刪除了意味著數(shù)據(jù)就不見了,很多時候我們需要先把數(shù)據(jù)備份好再去刪除列。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
什么工具可以把Sqlite里所有的表,導(dǎo)出建表的SQL語句?
MSSQL 從一個數(shù)據(jù)庫中的數(shù)據(jù)表將數(shù)據(jù)復(fù)制到另一個數(shù)據(jù)庫中相同的數(shù)據(jù)表
SQL Server2012如何導(dǎo)出sql腳本并且還原數(shù)據(jù)庫
一文搞懂各種數(shù)據(jù)庫SQL執(zhí)行計劃:MySQL、Oracle等
SQL SERVER 2005數(shù)據(jù)導(dǎo)入圖文教程
sql server導(dǎo)入excel等數(shù)據(jù)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服