如何设计一个向数据库写入大量数据,能够存下如此“大量”的数据

SQL2008装在C盘 建了个数据库 怎么设置能够让数据库实时保存在D盘_百度知道
SQL2008装在C盘 建了个数据库 怎么设置能够让数据库实时保存在D盘
SQL2008装在C盘 建了个数据库 怎么设置能够让数据库实时备份在D盘呢
提问者采纳
数据库DATA文件夹是统一保存在一个盘符下的,你可以将数据库附加出来,然后重新装一下SQL指定数据库文件夹在D盘下,再将附加出来的数据库贴到数据库文件夹下
提问者评价
对这个不是很精通
直接定时备份来着
其他类似问题
为您推荐:
其他1条回答
用sql语句建立数据库。或者将建好的数据库与sql server断开连接,移到D盘,然后附加
sql2008的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁君,已阅读到文档的结尾了呢~~
Access新手用的
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Access入门教程大全
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口SQL里怎么设计一个字段存放多条数据?
[问题点数:100分,结帖人u]
SQL里怎么设计一个字段存放多条数据?
[问题点数:100分,结帖人u]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2016年4月荣获微软MVP荣誉称号2015年4月荣获微软MVP称号2014年4月 荣获微软MVP称号
2016年7月 MS-SQL Server大版内专家分月排行榜第一
2013年 总版技术专家分年内排行榜第二
2014年8月 总版技术专家分月排行榜第一2014年7月 总版技术专家分月排行榜第一2014年6月 总版技术专家分月排行榜第一2014年5月 总版技术专家分月排行榜第一2014年4月 总版技术专家分月排行榜第一2014年3月 总版技术专家分月排行榜第一2014年1月 总版技术专家分月排行榜第一2013年12月 总版技术专家分月排行榜第一
本帖子已过去太久远了,不再提供回复功能。您所在的位置: &
我们该如何设计数据库(一)
我们该如何设计数据库(一)
CrazyJinn的博客
数据库该如何设计,一直以来都是一个仁者见仁智者见智的问题。下面来讨论一下在项目中经常碰到的用户的联系方式储存的问题。
数据库该如何设计,一直以来都是一个仁者见仁智者见智的问题。
对于某一种数据库设计,并不能简单的用好与不好来区分。或许真的应了那句话,没有最好,只有最适合。讨论某种数据库设计的时候,应该在某种特定的需求环境下讨论。
下面来讨论一下在项目中经常碰到的用户的联系方式储存的问题。
我在这里套用之前网络上流行&普通&&文艺&&二逼&的分类方式来描述我下文中提及的三种数据库设计思路,并且通过查询数据(对数据增删改,三种设计要付出的代码成本都差不多)和数据库面临需求变动两个方面来思考这三种设计各有怎样的优劣。
普通青年:
或许我们都这样设计过数据库
学生表 tb_Student:
varchar(100)
varchar(200)
varchar(200)
varchar(200)
这应该是最容易想到的一种思路,简单、明了。
比如说我要查询某个人的联系方式,那么我只用一条语句就能实现:
select&Name,Telphone,Email,Fax&from&表&where&条件&
在查询的时候,这种数据库设计十分清晰,没有任何思维的难度,没有任何逻辑的挑战。但是当面临需求变动的时候,那将会是一场灾难。
比如现在要新增一类用户:校长。那么我们要如何处理?
答案是:再加一张表 tb_Headmaster。
事实上,再加一张表其实修改并不大,因为我们完全不需要修改学生表的存储逻辑,换句话说,这种设计是遵循了开闭原则的
但如果学生要添加一种联系方式HomePhone的时候,灾难发生了
在tb_Student中加一列HomePhone?这意味着至少要修改整个Model层(或者说DAL层),这种改动是十分巨大的,而且容易造成错误。
或者再建一张表tb_Student2,来储存HomePhone,然后以ID来关联两张表?按改动规模来说,这种改动相对简单而且不容易出错,但是在今后的维护中会增加逻辑成本。当你一而再再而三的以这样的方式来应对需求变动的时候,你的程序将变得不可理解。
文艺青年:
对应用户类型(None = 0, Student = 1, Teacher = 2, Headmaster = 4)
对应用户ID
ContactMethod
联系方式(None = 0, Email = 1, HomePhone = 8, WorkPhone = 16,MobilePhone = 32,Fax=64)
ContactInfo
varchar(255)
这种是一个多对多关系。当我们要查询某个用户对应的联系方式的时候,那是一场逻辑上的浩劫:
select&ContactInfo&from&表&where&UserRole=某种用户类型&and&OwnerID=某用户ID&
这种写法是一次性取出某个用户所有的联系方式,包括Email,HomePhone,WorkPhone等,之后我们可以在程序中判断ContactMethod的类型,将具体的联系方式加以区分。你可以简单的想到用switch-case的写法,类似这样:
var&contact&=&上面的SQL语句取出来的用户所有的联系方式; &&&&&&&&&&&&&foreach&(var&item&in&contact) &&&&&&&&&&&&&{ &&&&&&&&&&&&&&&&&switch&(item.ContactMethod) &&&&&&&&&&&&&&&&&{ &&&&&&&&&&&&&&&&&&&&&case&ContactMethod.WorkPhone: &&&&&&&&&&&&&&&&&&&&&&&&&txtWorkPhone.Text&=&item.ContactIbreak; &&&&&&&&&&&&&&&&&&&&&case&ContactMethod.Email: &&&&&&&&&&&&&&&&&&&&&&&&&txtEmail.Text&=&item.ContactI &&&&&&&&&&&&&&&&&&&&&&&&&break; &&&&&&&&&&&&&&&&&&&&&case&ContactMethod.Fax: &&&&&&&&&&&&&&&&&&&&&&&&&txtFax.Text&=&item.ContactI &&&&&&&&&&&&&&&&&&&&&&&&&break; &&&&&&&&&&&&&&&&&&&&&case&ContactMethod.OtherPhone: &&&&&&&&&&&&&&&&&&&&&&&&&txtOtherPhone.Text&=&item.ContactI &&&&&&&&&&&&&&&&&&&&&&&&&break; &&&&&&&&&&&&&&&&&&&&&case&ContactMethod.MobilePhone: &&&&&&&&&&&&&&&&&&&&&&&&&txtMobilePhone.Text&=&item.ContactI &&&&&&&&&&&&&&&&&&&&&&&&&break; &&&&&&&&&&&&&&&&&} &&&&&&&&&&&&&}&
当然你也可以尝试下面这种写法,我个人认为这种写法更优雅
var&contact&=&上面的SQL语句取出来的用户所有的联系方式;&&&&&&&&&&&& &txtWorkPhone.Text&=&(from&a&in&contact &&&&&&&&&&&&&&&&&&&&&&where&a.ContactMethod&==&ContactMethod.Work_Phone &&&&&&&&&&&&&&&&&&&&&&select&a.ContactInfo).ToString(); &&
注意,请不要试图使用类似下面这类语句来查询某用户的联系方式:
select&ContactInfo&from&表&where&UserRole=某种用户类型&and&OwnerID=某用户ID&and&ContactMethod=1&&&&//取出某用户的Email &select&ContactInfo&from&表&where&UserRole=某种用户类型&and&OwnerID=某用户ID&and&ContactMethod=8&&&&//取出某用户的HomePhone&
相信我,这种做法非常愚蠢:每当你要取出这个用户的一种联系方式,就要和数据库建立一次连接,打开/关闭一次数据库;这种做法代价是十分巨大的,即使有数据库连接池,即使有数据库缓存,都应该避免这种愚蠢的做法.
唔,用了那么多的代码,终于查出了某个用户的联系信息了。反正我个人觉得这种设计方式在查询的时候,是逻辑上的浩劫。什么?你说你很享受?好吧,看来是我脑容量不够&&
不过当我们面临需求变动的时候,那就非常愉快了。
什么,要加一类用户?简单,UserRole加一个枚举就好了。
什么,要加一种联系方式?ContactMethod加一个枚举就OK。
使用了这种表设计的时候,相信你会微笑着面对需求变动的
昨天和同事也探讨了下这个问题,按他的说法就是:哪个表要联系方式,我就扔个字段进去,存json
varchar(8000)
用于储存json
举例来说,有这么一个用户:
Name:张三
Telphone:1234
那么数据库中就这样存:
[{&ID&:1,&Name&:&张三&,&Telphone&:&1234&,&Email&:&&,&Fax&:&5678&}]
当我听到这种设计思路的时候,虎躯微微一震:靠,这都行。按这种设计,我整张表都放进一个json里面一股脑的存进去就算了。不过震惊之后仔细想一想,其实这种设计也是有可取之处
首先,从查询来说,和普通青年一样,只需一句SQL:
select&Contact&from&表&where&条件&
查询之后,就可以通过json处理函数将想要的数据取出来,在此就不赘述了。
那么当面临需求变动的时候会发生什么:
加一类用户的时候,要添加一张表。也是符合开闭原则,原有代码没有改动。
加一种联系方式,只用存json的时候多存一点东西。
不过这种设计如果要更新某条数据的话要稍微麻烦一点:先查询一条数据,重组json之后再Update。
写了那么多,希望已经将想要表达的问题表达清楚了。不足之处望海涵,也欢迎留言斧正。
PS:真的是一个规律,一个月才能写出一篇博客&&
再PS:就快能回家了,高兴,开心。
原文链接:
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&的更多文章
本专题将为大家介绍数据库优化方面的知识。
数据库产品
数据库综合
数据库新闻
维基百科将切换到另外一款开源数据库MariaDB
本专题将带领大家走入MongoDB的世界,MongoDB是一个基
MySQL集群由三部分组成,管理节点、存储节点和SQL节点
MySQL字符串的处理,也就是对于MySQL字符集的处理。主
本书由Symantec首席反病毒研究员执笔,是讲述现代病毒威胁、防御技术和分析工具的权威指南。与多数讲述计算机病毒的书籍不同,
51CTO旗下网站怎么设计数据库去存储某条信息的可能有多个值的属性
[问题点数:40分,结帖人td901105td]
怎么设计数据库去存储某条信息的可能有多个值的属性
[问题点数:40分,结帖人td901105td]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2016年4月荣获微软MVP荣誉称号2015年4月荣获微软MVP称号2014年4月 荣获微软MVP称号
2016年7月 MS-SQL Server大版内专家分月排行榜第一
2016年4月荣获微软MVP荣誉称号2015年4月荣获微软MVP称号2014年4月 荣获微软MVP称号
2016年7月 MS-SQL Server大版内专家分月排行榜第一
2015年6月 MS-SQL Server大版内专家分月排行榜第一2015年5月 MS-SQL Server大版内专家分月排行榜第一2015年4月 MS-SQL Server大版内专家分月排行榜第一2015年3月 MS-SQL Server大版内专家分月排行榜第一2015年2月 MS-SQL Server大版内专家分月排行榜第一2015年1月 MS-SQL Server大版内专家分月排行榜第一2014年12月 MS-SQL Server大版内专家分月排行榜第一2014年11月 MS-SQL Server大版内专家分月排行榜第一2014年10月 MS-SQL Server大版内专家分月排行榜第一
2015年6月 MS-SQL Server大版内专家分月排行榜第一2015年5月 MS-SQL Server大版内专家分月排行榜第一2015年4月 MS-SQL Server大版内专家分月排行榜第一2015年3月 MS-SQL Server大版内专家分月排行榜第一2015年2月 MS-SQL Server大版内专家分月排行榜第一2015年1月 MS-SQL Server大版内专家分月排行榜第一2014年12月 MS-SQL Server大版内专家分月排行榜第一2014年11月 MS-SQL Server大版内专家分月排行榜第一2014年10月 MS-SQL Server大版内专家分月排行榜第一
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。

我要回帖

更多关于 大量数据库设计 的文章

 

随机推荐