作者QQ29 (我爱阿蓉)
站内Programming
标题[问题] DataBase 栏位有字串长度限制该怎麽解!
时间Sun May 1 22:38:49 2011
不好意思想请教各位
遇到一个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)
1F:→ MOONRAKER:釜底抽薪之计是不要用LINQ了 但是我支持 59.120.168.228 05/03 10:44
2F:→ MOONRAKER:你的第二个做法 因为现在的硬体很强 你 59.120.168.228 05/03 10:45
3F:→ MOONRAKER:实在不需要凡事操心效率,先做出结果再 59.120.168.228 05/03 10:46
4F:→ MOONRAKER:来改也不迟。老实说「效率」往往只是现 59.120.168.228 05/03 10:46
5F:→ MOONRAKER:在的programmer不想碰dirty work的藉口 59.120.168.228 05/03 10:47
6F:→ MOONRAKER:凡要自己做的事情就说效率会差,然後用 59.120.168.228 05/03 10:47
7F:→ MOONRAKER:一些憋脚的方式丢给db或其他subsys做 59.120.168.228 05/03 10:48
8F:→ MOONRAKER:却不在意这当中增加的overhead和牺牲的 59.120.168.228 05/03 10:49
9F:→ MOONRAKER:readability 59.120.168.228 05/03 10:49