開發者的資料庫設計技巧

轉自21CTO
軟體中有Bug的東西最終都會腐爛,這是一個普遍真理。
事情會慢慢起改變。
一開始看起來很酷很乾淨的東西,不知不覺就變成了「他們到底在想什麼」。
但這並不代表我們可以袖手旁觀,任其發展。
我們應該像一隻剛意識到自己被主人穿了襪子的貓一樣,對抗「代碼腐敗」。
程式碼腐敗的一個領域是資料庫設計,但這個領域沒有得到足夠的重視。在這裡,我將重點介紹一些你可能不太關注的、不太重要的資料庫設計技巧。
我們稱之為「小而重要的規則」。
每個表都有一個 ID 欄位這可能有些爭議,但我始終認為資料庫裡的每個表都應該有一個名為ID 的主鍵ID。
就是這樣,只是叫ID。注意,不是CustomerID,不是OrderID,只是ID。
它應該是一個自動遞增的整數值(或者,如果你有非常充分的理由UUID,例如分散式系統,也可以使用自動遞增的整數值)。
當然,該欄位應該有一個索引ID。
對於不是多對多關係交叉引用的表,你需要多字段鍵的情況應該非常非常罕見。
切勿在表名或字段名中添加空格在此,我向那些認為在表名或字段名中添加空格(或使用漢字)是個好主意的人致以永遠的鄙視。
你千萬別這麼乾,名稱中的空格會讓你使用引號,而你很容易忘記,這會讓你在編寫查詢時不禁自問:“到底帶空格還是不帶空格?” 這真是太麻煩了。
永遠不要使用空格,這樣你就再也不用為此煩惱了。
還有,為了可愛的貓王寶寶,請不要在名字中使用底線。我真不知道人們怎麼能忍受打出「像這樣的名字」。光是想,我的小手指就想去申請工傷賠償。
表名是複數
再次強調,這是一個很大的爭論,但我認為表格代表很多東西,而不是單一的東西。
因此,表格名稱應該始終使用複數形式。
例如,應該使用 Customers,而不是 Customer。
這樣,當你看到「customers」這個字時Orders,你就知道它指的是表格。如果你將表格命名為Order“order”,就會在“order”這個字周圍產生歧義。
你指的是表格本身還是表格中的一行?我知道這個問題已經討論過很多了。
我強烈傾向於使用複數名稱。
無論你做什麼,選擇一個系統並堅持下去。
外鍵要清楚標記還記得我上面提到的欄位ID嗎?現在它就派上用場了。如果表中有一行Orders引用了客戶(即外鍵),請將其命名為 name CustomerID。
任何命名的欄位<Entity>ID都將始終是該表的外鍵<Entity>。
在整個架構中一致地執行此操作,這樣就能始終清楚地了解哪些欄位是外鍵,以及這些欄位引用的是哪個表。
索引查詢的內容為出現在WHERE、JOIN或ORDER BY子句中的每個欄位新增索引。
堅持這樣做可以避免很多效能問題。
可能會有例外,但你應該透過索引(而不是索引不足)來發現它們。
假設需要索引,然後讓查詢分析器說服你刪除任何導致問題的索引。
參照完整性不是可選的確保表之間的關係保持完整,且資料庫中沒有孤立記錄,對於資料完整性至關重要。
所有現代關係型資料庫都具有引用完整性。
從一開始就嚴格遵循並執行它。
不要依賴程式碼來維護這些關係。資料庫本身就具備這種能力,我們應該充分利用它。
不要在程式碼中嵌入 SQL如果你曾經在程式碼中嵌入 SQL,哪怕“就這一次”,你也終生都會後悔。更別提它為「再來一次」打開了方便之門。
嵌入 SQL 會使你的程式碼變得雜亂無章,並與資料庫耦合,最終導致程式碼混亂不堪。
請記住,讓資料庫來做這些事吧。如果你非得需要在程式碼中使用 SQL,請將其與程式碼分開維護,並且不需要編譯器處理它。
將其儲存在單獨的文件中,這些文件可以嵌入或在程式碼外部使用,並且可以在不更改程式碼邏輯的情況下進行更新。
還有一些額外想法一般來說,如果資料庫能幫你做,你就讓它幫你做。資料庫處理資料的能力比你強 453.7 倍,不要試圖取代它們。
如果您想添加以 1、2、3 等結尾的字段,請不要這樣做。
閱讀有關規範化的內容。為列使用正確的資料類型。不要將布林值設為數字,也不要將日期設為字串。
強烈建議在每個表格中加入CreatedAt時間戳UpdatedAt欄位。你會驚訝地發現,你最終會慶幸自己這麼做。
使用觸發器自動產生這些時間戳,它們會變得實用且輕鬆。
還有參數化預存程序也是我們的好朋友,要盡可能地使用它們。查詢分析器在決定查詢資料的最佳方式方面比你高出一個數量級。
此外,請謹慎使用布林值。
Null 會將布林值轉換為量子態-在執行查詢之前,既不是真也不是假。
除非你確切了解 null… Continue reading

News Leave a comment

你知道OLT級聯組網的利與弊嗎?

隨著全光網路的建置加速,針對一些特殊場景、特殊應用或操作員的特殊考量,在PON接取網路中產生了OLT級聯組網的多樣化應用,尤其在小容量OLT設備的靈活部署應用中。

小容量OLT具備更靈活部署,環境適用性更強等優勢,適合於機房空間有限、低密度區域接入、OLT下沉/拉遠覆蓋、智慧園區快速接入、OLT和行動基地台共址等場景。同時提供更靈活的上聯組網及保護能力,確保業務安全性及高效能業務傳輸。
1.  OLT級聯組網方案
方案一:OLT上聯口級聯組網,即兩台OLT採用上聯口進行級聯。
當網路的主幹光纜資源緊張或BRAS/SR埠資源緊縮時,常會採用上聯口級聯的場景。

組網介紹:OLT透過上聯板級聯,可跨上聯板級聯、同上聯板級聯、級聯+連結保護三種方式連接。
OLT1與BRAS/CR之間採用雙10G上聯,OLT2的上網/語音/組播業務均匯聚到OLT1,對於IPTV組播業務,在級聯場景下,用作級聯的上聯口用設定為「級聯口」模式。支援鍊型組網和環形組網。
方案二:乙太網路業務盤進行級聯組網,即下聯OLT透過上聯口連接至上聯OLT的乙太網路業務盤。
當需要光纖直連承載交換路由專線業務時,經常會採用乙太網路業務盤級聯的場景。

組網介紹:OLT透過上聯板級聯,可跨上聯板級聯、同上聯板級聯、級聯+連結保護三種方式連接。
OLT1與BRAS/CR之間採用雙10G上聯,OLT2的上網/語音/組播業務均匯聚到OLT1,對於IPTV組播業務,在級聯場景下,用作級聯的上聯口用設定為「級聯口」模式。支援鍊型組網和環形組網。
方案二:乙太網路業務盤進行級聯組網,即下聯OLT透過上聯口連接至上聯OLT的乙太網路業務盤。
當需要光纖直連承載交換路由專線業務時,經常會採用乙太網路業務盤級聯的場景。… Continue reading

News Leave a comment

Splunk Enterprise Certified Administrator Exam:SPLK-1003

Splunk Enterprise Certified Administrator Exam:SPLK-1003
利用 Splunk Enterprise 知識提升您的優勢
從許可證管理、索引器和搜尋頭到配置、監控和資料收集,作為 Splunk Enterprise 認證管理員,您將對日常工作充滿信心。了解更多信息,優化您的環境健康。

SPLK-1003認證考試適用於負責支援 Splunk Enterprise 環境日常管理和健康的任何人。
考試詳情:
等級:專業級
先修課程:Splunk Core 認證高階用戶
考試時長:60 分鐘
考試形式:56 題選擇題
價格:每次考試 130 美元
考試提供方:Pearson VUE

職涯發展
將您的職業發展擴展到 Splunk Enterprise 平台內的搜尋和儀表板之外。展示您對 Splunk Enterprise 和 Splunk Cloud 平台的基礎知識。這是核心進階使用者的理想下一步。

平台管理員
展現您管理和維護 Splunk Enterprise 環境健康的能力。最好不要將您的部署遷移到 Splunk Cloud。

企業安全管理員
提升您的資格和專業知識。這是成功管理 Splunk Enterprise 安全環境的關鍵基石。

考試內容:
1.0 Splunk 管理基礎 5%
2.0 許可證管理 5%
3.0 Splunk… Continue reading

News Leave a comment

CompTIA Project+認證考試:PK0-005

CompTIA Project+認證考試:PK0-005
CompTIA Project+ 是唯一旨在為 IT 專業人士傳授成功管理中小型專案所需的入門級技能的行業認證。它展現了專業人士在按時、按範圍規劃、執行和交付專案的能力,同時確保有效的溝通和資源管理。 CompTIA Project+ 著重實作操作技能,以應對實際專案挑戰。
考試詳情
考試版本:V5
考試系列代碼:PK0-005
上市日期:2022年11月8日
題目數:最多 90 題
問題類型:選擇題與績效題
時長:90分鐘
及格分數:710(滿分100-900)
語言:英語、日語、泰語
建議經驗:相當於 6-12 個月在技術環境中管理專案的實務經驗

Project+(V5)考試目標
專案管理概念(33%)
·項目特徵和方法:解釋項目特徵、方法和框架。
·敏捷與瀑布:比較選擇標準、團隊組成與溝通方法。
·變更控制:應用特定於專案的變更控制和管理流程。
·風險管理:識別風險、分析因應措施、了解角色和職責。
·問題管理:追蹤問題、解決問題並記錄結果。
·進度管理: 確定里程碑、安排活動順序、估算資源和維護進度。
·品質與績效管理: 比較回顧、衝刺評審、服務等級協定 (SLA)、關鍵績效指標 (KPI)、稽核和測驗週期。
·溝通管理:評估方法、開發平台和管理溝通。
·會議管理:設定議程、分配角色、時間限制和記錄行動項目。
·團隊與資源管理: 分析資源差距、管理團隊績效和定義角色。
·採購和供應商選擇:評估供應商、合約和採購方法。

專案生命週期階段(30%)
·發現階段的成果: 解釋商業案例、預審合格的供應商和財務概念。
·專案啟動: 制定專案章程、確定利害關係人、建立責任分配矩陣 (RAM) 並召開啟動會議。
·專案規劃: 分配資源、制定溝通計畫、定義範圍、建立時間表和執行風險評估。
·專案執行:管理任務、供應商、會議、預算、衝突和階段門審查。
·專案結束: 驗證可交付成果、簽訂合約、釋放資源、歸檔文件和召開結束會議。

工具和文件(19%)
·專案工具: 使用甘特圖、燃盡圖、PERT(專案評估審查技術)圖表、問題日誌、變更日誌、風險登記冊、儀表板和時間追蹤工具。
·生產力工具: 比較溝通、協作、會議、文件、日程安排和票務工具。
·品質和性能圖表: 分析直方圖、帕累托圖、散點圖、魚骨圖、燃盡圖/燃盡圖和決策樹。

IT與治理基礎知識(18%)
·環境、社會和治理 (ESG): 總結專案對環境、法規、公司價值和品牌價值的影響。… Continue reading

News , , Leave a comment

Hoe verloopt het betalingsproces via de Spinarium mobiele app?

Hoe verloopt het betalingsproces via de Spinarium mobiele app?

Table of Contents

News Leave a comment

CompTIA DataX 認證考試:DY0-001

CompTIA DataX Certification Exam:DY0-001
CompTIA DataX 認證考試:DY0-001
CompTIA DataX 是經驗豐富的專業人士的頂級認證,旨在驗證其在快速發展的資料科學領域的能力。 DataX 旨在協助您掌握處理複雜資料集、實施資料驅動解決方案以及透過深刻的資料解讀推動業務成長所需的技能,並讓您自信地展現專業技能。
DataX(V1)考試目標

數學和統計學(17%)
·統計方法:應用 t 檢定、卡方檢定、變異數分析 (ANOVA)、假設檢定、迴歸指標、基尼係數、熵、p 值、接收者操作特性/曲線下面積 (ROC/AUC)、赤池資訊準則/貝葉斯資訊準則 (AIC/BIC) 和混淆矩陣。
·機率和建模:解釋分佈、偏度、峰度、異方差、機率密度函數 (PDF)、機率質量函數 (PMF)、累積分佈函數 (CDF)、缺失、過採樣和分層。
·線性代數與微積分:理解秩、特徵值、矩陣運算、距離測量、偏導數、鍊式法則和對數。
·時間模型:比較時間序列、存活分析和因果推論。

建模、分析和結果(24%)
·EDA 方法:使用探索性資料分析 (EDA) 技術,如單變量和多變量分析、圖表、圖形和特徵識別。
·資料問題:分析稀疏資料、非線性、季節性、粒度和異常值。
·資料豐富:應用特徵工程、縮放、地理編碼和資料轉換。
·模型迭代:進行設計、評估、選擇與驗證。
·結果溝通:建立視覺化、選擇資料、避免欺騙性圖表以及確保可訪問性。

機器學習(24%)
·基礎概念:應用損失函數、偏差-方差權衡、正規化、交叉驗證、整合模型、超參數調整和資料外洩。
·監督學習:應用線性迴歸、邏輯迴歸、k最近鄰(KNN)、樸素貝葉斯和關聯規則。
·基於樹的學習:應用決策樹、隨機森林、提升和引導聚合(裝袋)。
·深度學習:解釋人工神經網路 (ANN)、dropout、批量標準化、反向傳播和深度學習框架。
·無監督學習:解釋聚類、降維和奇異值分解(SVD)。

營運和流程(22%)
·業務功能:解釋合規性、關鍵績效指標 (KPI) 和需求收集。
·資料類型:解釋產生的、合成的和公共的資料。
·資料擷取:了解管道、串流、批次和資料沿襲。
·資料整理:實施清理、合併、歸納和基本事實標記。
·資料科學生命週期:應用工作流程模型、版本控制、清潔程式碼和單元測試。
·DevOps 和 MLOps:解釋持續整合/持續部署 (CI/CD)、模型部署、容器編排和效能監控。
·部署環境:比較容器化、雲端、混合、邊緣和本地部署。

數據科學的專業應用(13%)
·優化:比較約束優化和無約束優化。
·NLP 概念:解釋自然語言處理 (NLP) 技術,如標記化、嵌入、詞頻-逆文檔頻率 (TF-IDF)、主題建模和… Continue reading

News Leave a comment

Mobile App Features for Custom Sports Alerts in Canada on ToonieBet App.

Mobile App Features for Custom Sports Alerts in Canada on ToonieBet App.

Table of Contents

News Leave a comment

CompTIA Cloud Essentials+認證考試:CLO-002

CompTIA Cloud Essentials+認證:CLO-002
CompTIA Cloud Essentials+ 認證旨在驗證您對雲端運算及其業務影響的基礎知識,包括雲端概念、業務原則、管理、治理、風險和安全性。
作為 CompTIA 產品整合工作的一部分,此認證將永久停用,考試截止日期為 2025 年 9 月 25 日。請在此截止日期前預約並完成考試,以獲得認證。
Cloud Essentials+ (V2) 考試目標
雲概念(24%)
·服務模式:了解軟體即服務 (SaaS)、基礎設施即服務 (IaaS) 和平台即服務 (PaaS)。
·部署模式:探索公有、私有和混合雲環境。
·共享責任模型:解釋雲端提供者和使用者的角色。
雲端環境的商業原則(28%)
·財務方面:分析資本支出(CapEx)、營運支出(OpEx)及訂閱模式。
·供應商關係:評估服務等級協定 (SLA)、培訓和支援選項。
·雲端遷移:比較直接遷移、混合遷移和分階段遷移方法。
管理和技術營運(26%)
·雲端操作:管理資源、監控效能和最佳化工作負載。
·自動化和編排:實施配置、擴展和配置管理工具。
·災難復原:規劃備份策略、故障轉移流程和復原測試。
雲端運算的治理、風險、合規性和安全性(22%)
·風險管理:評估並減輕雲端環境中的風險。
·合規性:了解資料主權、監管問題和認證。
·安全性:實施加密、存取控制和漏洞評估。
考試詳情
·考試版本:V2
·考試系列代碼:CLO-002
·上市日期:2019年11月
·題目數:最多 75 題
·問題類型:選擇題
·考試時間:60分鐘
·及格分數:720(滿分100-900)
·語言:英語和日語
·推薦經驗:在技術環境中擔任業務分析師 6-12 個月的工作經驗,並接觸過一些雲端技術
·退休日期:2025年9月25日… Continue reading

News , Leave a comment