資料庫設計除了需要遵守正規化還需要的遵守的原則
1. 可用性
舉一個簡單的例子,就像現在部落格園可以上傳的字元數量,如果該欄位的長度只有500字,這顯然不能滿足場景的要求
2. 適當超前
超前到什麼程度需要根據對應用的預期來定。拿QQ來說,馬化騰最初肯定預見不到QQ能有目前的使用者量與活躍度,畢竟那是近20年前的事情了。
對於本文設定的應用場景,我們把超前設定為網站的文章數量達到了千萬級。這時如果只把文章存在一張資料表裡,讀寫效能必然是會急劇下降的,這必然會導致使用者體驗變差,使用者流失。
合理的解決方案之一是分為兩張資料表,一張儲存熱門文章,另一張儲存非熱門文章。畢竟熱門文章佔少數,熱門文章的載入速度相對就更快了。
3. 資料庫欄位型別選擇
當一個列可以選擇多種資料型別時,應該優先考慮數字型別,其次是日期或者二進位制型別,最後是字元型別。
decimal用於儲存精確資料,而float只能用於儲存非精確資料。故精確資料只能選擇用decimal型別。
4. 主鍵的選擇
儘量與業務不相關,佔空間儘可能小
5. 避免使用外來鍵
增加維護成本,降低資料匯入效率
相關推薦
資料庫設計除了需要遵守正規化還需要的遵守的原則
1. 可用性 舉一個簡單的例子,就像現在部落格園可以上傳的字元數量,如果該欄位的長度只有500字,這顯然不能滿足場景的要求 2. 適當超前 超前到什麼程度需要根據對應用的預期來定。拿QQ來說,馬化騰最初肯定預見不到QQ能有目前的使用者量與活躍度,畢竟那是近20年前的事情了。 對於本文設定的應用場景,我
資料庫設計一二三四正規化有何區別
範化是在識別資料庫中的資料元素、關係、以及定義所需的表和各表中的專案這些初始化工作之後的一個細化的過程。常見的正規化有1NF 2NF 3NF BCNF以及4NF。 1NF,第一正規化。第一正規化是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者
資料庫設計之反三正規化的理解
反三正規化是基於第三正規化所調整的,沒有冗餘的資料庫未必是最好的資料庫,有時為了提高執行效率,就必須降低正規化標準,適當保留冗餘資料。具體做法是: 在概念資料模型設計時遵守第三正規化,降低正規化標準的工作放到物理資料模型設計時考慮。降低正規化就是增加欄位,減少了查詢時的關聯,提高查詢效率,因為在資料
Oracle學習總結(2)——Oracle資料庫設計總結(三大正規化)
一、實體與表對應關係 表<=>實體,欄位<=>屬性。 二、表與表的關係(實體間的關係):一對一、一對多、多對多 一對一:一條記錄只對應其他表中的一條記錄有關係 學生基本資訊表t_student,成績表t_studentScore含有一個外來
創業除了情懷還需要什麽?
創業對於當下的國內互聯網創業者來說,似乎追求的只是熱錢、風口、暴富和成名。他們創業的初衷不是為了改變這個世界,也不是為了自己心中既有的情懷,而是為了能夠借助資本市場扶搖直上九×××。或許他們還有著自己的夢想,但在無情的資本市場下卻很快“屈從”於現實。有情懷的創業者,實在是太少了。而且相對來看,還講情懷的創業者
資料庫SQL實踐28:查詢描述資訊中包括robot的電影對應的分類名稱以及電影數目,而且還需要該分類對應電影數量>=5部
思想: 題目要求查詢描述資訊中包括robot的電影對應的分類名稱以及電影數目,而且還需要該分類對應電影數量>=5部。 首先通過條件(select category_id from film_category group by film_category.category_id havi
除了技術知識之外,我還需要了解什麼知識?
有時候真的感覺,知識的貧乏,讀書能夠改變人的一生或者一個人的命運吧~多讀書總歸沒有錯。 1.比特幣相關知識 2.全球經濟為什麼崩盤,繼上次金融危機又發生了什麼事情 3.國家的經濟政策 4.為什麼虛擬加密貨幣會興起? 5.比特幣與區塊鏈之間的關係? 6.什麼是區
要成為年薪五十萬的資料分析師,除了技術還需要什麼?
超過59%企業,將提高資料分析崗位數量----一流的資料分析師,年薪輕鬆突破50萬想必同學們看到
程式設計師養生心得:除了保溫杯+枸杞,你可能還需要它!
程式設計師們一天要面對電腦螢幕10小時以上,一行行密密麻麻的程式碼在眼前轉來轉去,工作時精神高度
設計模式-生產者消費者模式 常見場景: 某個模組負責產生資料,這些資料由另一個模組來負責處理。產生資料的模組,就形象地稱為生產者;而處理資料的模組,就稱為消費者。 該模式還需要有一個緩衝區處於生
常見場景: 某個模組負責產生資料,這些資料由另一個模組來負責處理。產生資料的模組,就形象地稱為生產者;而處理資料的模組,就稱為消費者。 該模式還需要有一個緩衝區處於生產者和消費者之間,作為一箇中介。生產者把資料放入緩衝區,而消費者從緩衝區取出資料 緩衝區作用 1. 解耦,生產者和消費者只依賴緩衝區,而不互
資料庫設計需要注意什麼
一、基礎規範: 1. 必須使用InnoDB儲存引擎 解讀:支援事務、行級鎖、併發效能更好、CPU及記憶體快取頁優化使得資源利用率更高 2. 新庫預設使用utf8mb4字符集 解讀:utf8mb4是utf8的超集,emoji表情以及
學習程式設計除了需要好的方法之外 還需要調整自己的心態
java零基礎入門-番外篇 來來來,教程寫累了,各位大爺也看累了,我們來活躍活躍氣氛,來點經驗分享,準備好迎接下一座大山 --- 面向物件。 學習就是爬山 學習java的過程可能會有各種各樣的情緒伴隨著你。剛開始的基礎
除了Java,為什麼你還需要學Kotlin?
作為一個 Java 開發者,你一定對面向物件程式設計的核心概念爛熟於胸。Java 是純面嚮物件語
資料庫按照手機號分庫後,還需要允許使用者使用郵箱、使用者名稱等登入,怎麼才能提高查詢效率?
回答:1.資料量特別大,就算使用者量再,相信貴公司的產品不會超過 3億賬號,若是如此的話,建議拆分的時候採用路由表的模式,而不是HASH,也即你們的拆分手段就做不對。2.若是按照手機號碼拆分的話,則會導致其他的 郵箱地址 和 編號登入的時候,需要掃描整個拆分庫,則效率會非常糟糕,建議迅速調整拆分的架構,折中的
網校搭建完成,課程還需要設計嗎?
目前,隨著搭建網校的時間和成本大大的降低,線上教育已經成為常態。那麼,當我們網校搭建完成之後,最應該關注什麼?……沒錯!就是課程! 就線上教育平臺而言,課程內容的設計是一件至關重要的事情。與傳統教學內容不同,線上網路課程內容往往需要更加精簡、實用,更加適合電腦、移動終端的
除了敲程式碼,程式設計師還需要哪些必備技能?
1、原始碼分析專題 詳細介紹原始碼中所用到的經典設計思想,看看大牛是如何寫程式碼的,提升技術審美、提高核心競爭力。 幫助
資料庫設計需要注意什麼?
1.資料庫表、欄位必須必須加入中文註釋 因為時間一長如果名字有不是很規範,你不知道這些欄位做什麼用的. 2.禁
移動智能時代,為何還需要獵網平臺?
獵網平臺今年5月中旬,一款名為WNCRYPT“永恒之藍”的勒索病毒襲擊了互聯網,全世界有超過150個國家和地區的計算機系統被感染,中國區域亦並未幸免。不過堪稱欣慰的是,這款破壞力極大的病毒在中國區域爆發的第一時間,360安全衛士團隊就推出專用工具將之擋在門外,使得大多普通用戶幸免遭劫。但在此之前,鮮有人對網絡
有了LongAdder還需要AtomicLong嗎?
and 無法 需求 還需要 sum() 很多 返回 滿足 基本 眾所周知LongAdder在高並發場景下比AtomicLong高效很多,在低並發時基本持平,其原理就不說了,很多文章都有提到。 那麽問題來了,既然如此iAtomicLong還有使用的必要嗎? 我們來看看一個最常
CC++編譯器的未來.我們還需要C++麽?
gin 編譯 需要 shu cdt cst tar href shuf 諗檬仗詿棠傲瓷灼瘴腔行嗜匣http://t.docin.com/hwvkm7301 俠啃聳藤獻松儺沸臉筆乖暇氖寥http://huiyi.docin.com/krvt5800 度路訝概訟斜蔥麽傲厝林