[問題] DataBase 欄位有字串長度限制該怎麼解!

看板Programming作者 (我愛阿蓉)時間14年前 (2011/05/01 22:38), 編輯推噓0(009)
留言9則, 1人參與, 最新討論串1/1
不好意思想請教各位 遇到一個DataBase的設計問題 我是沒有任何database相關知識背景 survey後 我 是使用 DataContext這個Class http://msdn.microsoft.com/zh-tw/library/system.data.linq.datacontext.aspx 我的某一個Table存的資料是 struct MyData{ string Key; string Content;} 我以為很簡單 但我發現他有一個大問題就是 我insert的字串要是超過4000 length 他就爆出 string truncation exception......... 我無法限制插入字串的長度, 那是使用者輸入的..... 而我也不曉得該怎麼辦~ 我的疑惑點有兩個 1. DB為啥要有字串長度的限制@@ 是怕太長 一筆資料太大嗎?? 2. 若一般人遇到我這種case要怎麼樣 處理呢? 我自己想法是..... (1)我就多宣告幾個Content....例如 struct MyData{string Key; string Content1, Content2, Content3....} 然後要insert資料時把字串以四千 切割照順序 存到1 2 3 然後query時 在寫很無腦的 string Content = 1 + 2 + 3; 這根本就......還是有機會爆炸 但我實在想不到方法 因為他欄位無法動態增加.. (2) 我一筆資料插入 就把Content 存到 Key.txt... 然後MyData改成紀錄 檔案名稱 或是我因為用Key當檔名 就根本不用紀錄檔名了.... 但缺點是 我每次query一筆資料就要 file 開關 一次 多筆就是多次 我認為這缺點很嚴重....畢竟IO很慢 且頻繁..... 我實在不知道該怎麼辦= = 主要是我對DB不熟 只是單純survey這些API 可是不應該只有我會遇到這問題~~不知道大家是如何解決的~ 請各位給點意見 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.192.70.221 QQ29:轉錄至看板 C_Sharp 05/01 22:39 QQ29:轉錄至看板 C_and_CPP 05/01 22:40 ※ 編輯: QQ29 來自: 123.192.70.221 (05/01 22:45)

05/03 10:44, , 1F
釜底抽薪之計是不要用LINQ了 但是我支持
05/03 10:44, 1F

05/03 10:45, , 2F
你的第二個做法 因為現在的硬體很強 你
05/03 10:45, 2F

05/03 10:46, , 3F
實在不需要凡事操心效率,先做出結果再
05/03 10:46, 3F

05/03 10:46, , 4F
來改也不遲。老實說「效率」往往只是現
05/03 10:46, 4F

05/03 10:47, , 5F
在的programmer不想碰dirty work的藉口
05/03 10:47, 5F

05/03 10:47, , 6F
凡要自己做的事情就說效率會差,然後用
05/03 10:47, 6F

05/03 10:48, , 7F
一些憋腳的方式丟給db或其他subsys做
05/03 10:48, 7F

05/03 10:49, , 8F
卻不在意這當中增加的overhead和犧牲的
05/03 10:49, 8F

05/03 10:49, , 9F
readability
05/03 10:49, 9F
文章代碼(AID): #1DlN1yaf (Programming)
文章代碼(AID): #1DlN1yaf (Programming)