Re: [SQL ] 一個用戶多筆資料存一張表還是多張表較好

看板Database作者 (晶晶)時間8年前 (2015/08/17 23:26), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《brianw ()》之銘言: : 假設現在一個用戶有多筆資料: : [id, 身高, 體重, 年紀] : 但不是每欄都是必填 : 請問怎麼樣存取較好呢? : 1.) 同一張表 沒填的就空白 舉例: : id 身高 體重 年紀 : ---------------------- : 1 170 20 : 2 40 : 3 190 100 : 2.) 每種資料各存一張表 舉例: : id 身高 id uid 體重 id uid 年紀 : --------- -------------- -------------- : 1 170 1 3 100 1 1 20 : 3 190 2 2 40 : 新手的理解 : 是不是第一種存取只要request一次? 但會有很多欄位是空白 : 第二種則要request三次 但不會有欄位是空白 : 請問資料多時哪種方式會比較好呢? 謝謝 看查詢使用量,比較清楚要用那種比較好,現在的資料庫都有查詢的使用量歷史資料。 通常會考慮兩種情況: 一、查詢(Select) 二、新增(Insert) ~查詢~ 2查詢合併表格時比較慢,1因為不用合併表格,所以比較快 如果比較常個別查詢身高、或體重、或年紀,2比較好 因為既然不需要常常合併表格,那也不用先合併好 舉個例子: 超過50%的查詢,要一起看使用者的身高、體重年紀 - 選1 超過50%的查詢,只看身高,或只看體重,或只看年紀 - 選2 ~新增~ 雖然新增資料1比較快,不過怎麼看都不是像交易資料那樣高頻率新增, 所以不太需要考慮這點 一點想法,希望有合理 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.27.43.9 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1439825179.A.40E.html

08/18 03:09, , 1F
謝謝 滿有道理的
08/18 03:09, 1F

08/19 10:05, , 2F
我會以該資料是否每個人只有一筆資料來設計,舉例來說
08/19 10:05, 2F

08/19 10:05, , 3F
如果你身高體重是要依照年齡紀錄的,那就會另外拆一個
08/19 10:05, 3F

08/19 10:06, , 4F
Table把每次量的記下來,再用id比對,如果每次量的身高體重
08/19 10:06, 4F

08/19 10:06, , 5F
會直接蓋過現有紀錄欄位,那就跟id在同一個Table
08/19 10:06, 5F
文章代碼(AID): #1LqVqRGE (Database)
文章代碼(AID): #1LqVqRGE (Database)