我的資料表設計

2021-08-22 11:15:04 字數 791 閱讀 9028

工作學習中碰到一些老表,有些不同想法。

舉例說明:

使用者登入系統:

傳統: id, uid, ups, uname, udesc, umail, ulogo, regtime, isblocked, lastintime一般乙個表就可以。

對於併發使用者多的話,那麼就點問題。

每次使用者登入時,都會對該錶進行讀操作。登入成功後,都會更新使用者的lastintime(最後登入時間),也就是寫操作,中間使用者還可能修改其udesc,  umail, ulogo(使用者簡要描述,使用者mail,使用者的logo來個性化自己).

這是讀寫的差異,實際上按照我們功能定義,對錶的操作也可以分為經常讀,很少讀,經常寫,很少寫。

那麼如何分?

我記得sql語句使用時大家都很清楚select * 和select需要的字段這兩者的差別。那麼在**設計時也可以這麼做。每個表只包括需要的資訊。

比如table1: id, uid, ups, uname, isblocked(經常讀,難得寫(因為block很少用,如果用的很頻繁,那就另外建表))

table2: uid, udesc, umail , ulogo, regtime(偶爾寫,偶爾讀)

table3: uid, lastintime...(經常寫,除了lastintime最後登入時間經常要寫外,還有其他字段需要經常寫)

這樣的設計在大資料量和併發多的情況下會比較明顯。小資料量和很少併發情況下,這樣會增加聯表操作的成本。

說的不對還請大家糾正,目前我自己是按照這個思維方式來設計表的。主要是針對爬蟲表。

當然這應該適用大多數情況。

資料表設計

在進行完了資料調研 需求分析 技術實現方案,進行資料設計。資料設計,往往包含兩個環節 在本專案中,我們所有的資料設計環節,只會涉及第二個,不會涉及第乙個。因為我們為了突出課程重點,也就是spark。所以主要還是集中在spark上面,就不要花時間去做hive etl了。設計mysql中的業務表的結構。...

資料表設計

資料表設計 三大正規化 第一正規化 列的原子性,每一列是不可再拆分的 若是還要查詢省份或地區,則該錶有誤,不滿足第一正規化,則應 第二正規化 表裡面的每一列都應與主鍵有關 範例 品種列亂入不和主鍵有關係,不滿足第二正規化 科考,人員代號和科目代號為聯合主鍵,姓名雖與人員代號有關,但在成績表出來前人的...

資料表設計的步驟

對需求進行分析,從而確定系統中所包含的實體。所謂實體就是物件,比如 專案中實體有使用者 訂單 商品等。一般來說,每個實體相當於資料庫的乙個表 分別找出每個實體的所有與專案有用的屬性 比如使用者實體屬性有 姓名 性別 年齡 身高 三圍等。但是與 專案有關的是姓名 性別,可能年齡,身高 三圍作用不大。保...