Re: [請益] DB設計上為何不要都開NVARCHAR2(4000)

看板Soft_Job作者 (Terry)時間9年前 (2014/08/16 15:18), 編輯推噓2(2010)
留言12則, 5人參與, 最新討論串4/8 (看更多)
※ 引述《returnbool (lasa)》之銘言: : 各位前輩,目前同仁們在討論一個問題,主要是關於資料庫設計方面, : 根據Oracle的說明 NVARCHAR2 為長度可變動的欄位格式, : 有個問題是,假設設計身分證的欄位, : 當我把欄位設定成ID_NUM NVARCHAR2(10) 與 ID_NUM NVARCHAR2(4000) : 就前提來看,只要我都只存10個字元,那個所占用的空間"應該"是一樣的, : 如果說站在這個角度上,我將所有的欄位都設定成 NVARCHAR2(4000), : 那麼有沒有非常顯在的缺點 ? : 目前是想像的到的 : 1. 無法從DB Schema看出長度限制 : 2. table fragmentation : 3. 效能問題 : 還有其他潛在的問題嗎 ? 若是都把欄位設成NVARCHAR2(4000)的話呢 ? 問題主要不在DB 哪一邊, 問題主要在CLIENT 這一邊, 和網路這一邊. 你就是用偉大的ORM 來寫CLIENT, 但你從你的TABLE SCHEMA , 將無法準確得知一筆資料最多佔多少資源. 從而無法好好的 了解你的程式的限制. 再來, 網路哪一段, 也有同樣的問題. 你將答不出任何頻寬的需求. 當然, 也會像有人說的, 以上都是小問題. 畢境佔多少資源問題, OMM 就加大MEMORY 加大了變慢, 就加CPU, 當掉就就要USER 重開囉. 而頻寬問題, 不夠就加大囉, 100MB, 不夠就1GB, 交換機,ROUTER 全都換, 也沒多少錢. 程式怎麼規畫, 怎麼寫, USER 買不買單就好. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.113.137 ※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1408173488.A.D45.html

08/16 15:37, , 1F
我個人是從來沒看過有 ORM 需要知道這個的; 動態字串
08/16 15:37, 1F

08/16 15:37, , 2F
allocation 不是基本的嗎?
08/16 15:37, 2F

08/16 17:08, , 3F
ya 所以NoSQL就是潮 grid就是潮
08/16 17:08, 3F

08/17 00:14, , 4F
基本啊,所以台灣人寫的JAVA是無法7X24. 玩具是沒問題的
08/17 00:14, 4F

08/17 00:15, , 5F
當你連自已的程式的反應都不知時,這要算PROGRAMMER?
08/17 00:15, 5F

08/17 00:22, , 6F
資料限制及驗證應該要從文件知道吧? XD
08/17 00:22, 6F

08/17 00:25, , 7F
咦,文件呢,連IBM/ORACLE 等廠出的文件都沒100%,台灣?
08/17 00:25, 7F

08/17 00:26, , 8F
再來,文件跟你說10,TABLE 是4000,你寫程式的,會敢開10?
08/17 00:26, 8F

08/17 22:20, , 9F
微軟系的Linq to xxx 可都是會用資料形態,長度 產生 code
08/17 22:20, 9F

08/17 22:21, , 10F
j 系也有靠資料庫資料形態長度產code的工具,然後一次就把
08/17 22:21, 10F

08/17 22:22, , 11F
整個基本資料傳遞架構長好,還包前端js驗證。要是碰上這種
08/17 22:22, 11F

08/17 22:23, , 12F
一律開nvarchar 4000的狀況,真的不用搞軟體工程了
08/17 22:23, 12F
文章代碼(AID): #1JxmMmr5 (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1JxmMmr5 (Soft_Job)