2023-12-07 分類: 網站建設
本期我們來聊聊創(chuàng)新互聯(lián)。在開始討論創(chuàng)新互聯(lián)之前,我們首先要明確一點。數(shù)據庫是大部分業(yè)務系統(tǒng)的核心,創(chuàng)新互聯(lián)也是一個非常重要的設計。
不過,這并不代表創(chuàng)新互聯(lián)是一件很困難的事情。對于我們的技術支持團隊,我們一直堅持后端開發(fā)者直接設計數(shù)據庫(無論開發(fā)者經驗如何),而不是讓有經驗的開發(fā)者做創(chuàng)新互聯(lián)的工作(有經驗的開發(fā)者做好審查工作)。
這是因為:
1、創(chuàng)新互聯(lián)不需要一次性全部設計好。在開發(fā)過程中,不可避免地要對數(shù)據庫進行調整。只要數(shù)據庫的骨架沒有問題(有經驗的開發(fā)者可以做好),比如添加或刪除字段、添加中間表、添加視圖等不會造成太大影響。
2、創(chuàng)新互聯(lián)是一些后端需求(通用業(yè)務系統(tǒng))的改造過程。正如原型是前端部分的需求轉化過程一樣,后端功能(通用業(yè)務系統(tǒng))的結構可以通過數(shù)據庫分庫分表來粗略描述。創(chuàng)新互聯(lián)),難免會出現(xiàn)無法區(qū)分功能結構的情況,只能根據頁面原型猜測需要哪些接口。這種看一個功能,開發(fā)一個接口的工作模式,無論代碼怎么寫,大部分情況下都會出現(xiàn)開發(fā)進度不可控、開發(fā)冗余接口、接口遺漏等問題。
所以,創(chuàng)新互聯(lián)是每個后端開發(fā)者必須掌握的技能,而創(chuàng)新互聯(lián)并不難。我們不考慮一下子把創(chuàng)新互聯(lián)完全拿出來,只需要設計好骨架。是(在設計審查和后續(xù)開發(fā)期間進行了調整)。
我們推薦的創(chuàng)新互聯(lián)步驟分為以下3個步驟:
子庫(由架構師或技術負責人完成)
子表(由開發(fā)者完成)
添加冗余字段、視圖(由開發(fā)者完成)
1、子庫
經常看到有些系統(tǒng)只有一個數(shù)據庫,而這個數(shù)據庫里有幾十萬張表。我相信網站開發(fā),無論E-R圖紙多么詳細,描述寫得多么好,沒有人能夠弄清楚它們之間的關系。這無疑是系統(tǒng)越來越差的主要原因之一,也是微服務無法發(fā)揮應有作用的原因之一(使用同一個數(shù)據庫,后端服務擴展更多服務器也沒用)。
所以分庫的目的:
分庫的原理很簡單。一般來說,每個子系統(tǒng)對應一個數(shù)據庫。比如用戶系統(tǒng)、博客系統(tǒng)、商城系統(tǒng)、流程系統(tǒng)都有自己獨立的數(shù)據庫,系統(tǒng)劃分更多是基于業(yè)務架構。業(yè)務架構設計請參考我們之前的業(yè)務架構視頻。此外網站開發(fā),對于一些數(shù)據密切相關的子系統(tǒng),例如優(yōu)惠券和資金系統(tǒng),最好將它們組合成一個系統(tǒng)。
當然,數(shù)據庫獨立后會出現(xiàn)一些問題。對于大部分場景,通過前端調用多個接口進行集成就足夠了網站制作,但是對于一些需要強數(shù)據一致性的場景,就會涉及到數(shù)據庫分布式庫。 ,關于數(shù)據庫分布式事務,下期會詳細介紹。
2、子表
子表更多的是根據當前模塊的業(yè)務功能來確定。以博客系統(tǒng)為例,主要的業(yè)務邏輯是用戶寫博客,管理員審核后,其他用戶可以查看網站優(yōu)化,也可以登錄博客。在下方評論以創(chuàng)建相應的四個表。但是,由于審計其實是一種狀態(tài),可以用一個字段來記錄,所以只需要兩張表,一張是博客表,一張是評論表。
定義完主表后,需要查看本系統(tǒng)的所有功能點,看是否需要添加額外的表。如果發(fā)現(xiàn)博客系統(tǒng)中有收藏功能,可以考慮添加收藏表。
表劃分完成后,還要分析表之間是否存在多對多關系。如果博客有標簽分類,那么博客和標簽是多對多的關系。
這種多對多關系有兩種解決方案:
分表完成后,大致勾勒出一個模塊的功能結構。開發(fā)過程中,哪些功能是主要的,哪些是次要的也一目了然,讓開發(fā)計劃更加清晰,前后端聯(lián)調也一目了然??梢苑蛛A段完成。分表后,單個數(shù)據庫的結構基本清晰,但是對于一些特殊的功能,比如個人中心的評論列表,除了顯示評論內容外,還需要顯示博客。
3、添加冗余字段和視圖
此時需要考慮添加冗余字段,即博客名稱也記錄在評論表中(已經記錄在博客表中)當然冗余字段的更新是比較麻煩,所以冗余字段適合一些更新非常不頻繁或者不允許更新的字段。
當然,除了冗余字段,SQL語句也可以用來實現(xiàn)夸張的表查詢。對于這種夸張的表查詢,我們推薦使用視圖。也就是說,視圖是保存在數(shù)據庫中的一條SQL查詢語句,一個視圖可以簡化后端SQL語句的復雜度,也可以通過查看哪些接口使用視圖,就可以知道自己進行了跨表查詢(方便后續(xù)性能調優(yōu))。
例如,熱門博客需要按受歡迎程度進行排名,而受歡迎程度是通過將收藏、點贊和評論的數(shù)量乘以各自的權重來確定的。然后可以做一個視圖創(chuàng)建博客熱度虛擬表,可以用簡單的SQL查詢前3的博客(實際項目需要加緩存),也可以用簡單的SQL查詢某個博客類別下的前3篇博客(實際項目需要添加緩存)。
視圖除了上述好處外,還有一個好處:跨數(shù)據庫查詢(雖然可以直接使用SQL語句完成,但是視圖可以更規(guī)律),如果多個數(shù)據庫在同一個服務中, view 可以查詢數(shù)據庫(普通SQL語句也可以)。如果數(shù)據庫在不同的服務(.7以后),也可以通過數(shù)據同步來同步要查詢的數(shù)據,然后通過視圖查詢數(shù)據庫。當然,這種方式一般不常用于大型網站,因為如果同步數(shù)據庫的數(shù)據量太大或更新頻率高,往往得不償失。
命名約定
我們推薦的數(shù)據庫命名約定是數(shù)據庫的名稱與系統(tǒng)名稱相同。表名以 t_ 開頭,視圖以 v_ 開頭。如果在表中是唯一的,就用表名_開頭,如果是外鍵就用它原來的名字,視圖不改字段名。這樣即使沒有E-R圖,也可以通過字段名來判斷表與表的關系。這可能看起來很簡單,但它可以防止許多不必要的錯誤。
總結
創(chuàng)新互聯(lián)當然還包括索引、具體字段、字段類型和長度等,不過這些問題其實可以在實際開發(fā)過程中加入。一開始就考慮這些問題太仔細是浪費時間(甲方或業(yè)務部門要求除外)。
以上是我們推薦的創(chuàng)新互聯(lián)流程。當然,創(chuàng)新互聯(lián)從來沒有絕對的最優(yōu)解。創(chuàng)新互聯(lián)是否相對合理,取決于對業(yè)務功能的理解和項目經驗。
但是不要擔心做好它,因為如果你不做它,你永遠不會做好它。只要你做幾次,被有經驗的人審核幾次,相信你的創(chuàng)新互聯(lián)會越來越成熟。
網站標題:網站開發(fā)創(chuàng)新互聯(lián)步驟及步驟(一)——數(shù)據庫原型設計網站前端開發(fā)
當前網址:http://www.ekvhdxd.cn/news15/299815.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航、小程序開發(fā)、服務器托管、網站制作、全網營銷推廣、域名注冊
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容