多人访问一张表如何进行数据库设计

多人访问一张表如何进行数据库设计,第1张

1 使用行级锁:当一个用户访问一行数据时,其他用户将被阻止访问该行数据,直到该用户释放锁。

2 使用分区:将表分成多个分区,每个分区的数据是独立的,用户只能访问自己分区的数据,从而避免冲突。

3 使用视图:将原表分解成多个视图,每个视图只能访问一部分数据,用户只能访问自己的视图,从而避免冲突。

4 使用存储过程:将多个用户的访问表的 *** 作封装成存储过程,用户只能调用存储过程,而不能直接访问表,从而避免冲突。

5 使用事务:将多个用户对表的 *** 作封装成一个事务,只有当所有 *** 作都成功完成时,才会提交事务,从而避免冲突。

大数据量的数据库表设计技巧

即使是一个非常简单的数据库应用系统,它的数据量增加到一定程度也会引起发一系列问题。如果在设计数据库的时候,就提前考虑这些问题,可以避免由于系统反映迟缓而引起的用户抱怨。

技巧1:尽量不要使用代码。比如性别这个字段常见的做法:1代表男,0代表女。这样的做法意味着每一次查询都需要关联代码表。

技巧2:历史数据中所有字段与业务表不要有依赖关系。如保存打印发票的时候,不要只保留单位代码,而应当把单位名称也保存下来。

技巧3:使用中间表。比如职工工资,可以把每一位职工工资的合计保存在一张中间表中,当职工某一工资项目发生变化的时候,同时对中间表的数据做相应更新。

技巧4:使用统计表。需要经常使用的统计数据,生成之后可以用专门的表来保存。

技巧5:分批保存历史数据。历史数据可以分段保存,比如2003年的历史数据保存在 《2003表名》中,而2004年的历史数据则保存在《2004表名》中。

技巧6:把不常用的数据从业务表中移到历史表。比如职工档案表,当某一职工离开公司以后,应该把他的职工档案表中的信息移动到《离职职工档案表》中。

1、经常查询的和不常用的分开几个表,也就是横向切分

2、把不同类型的分成几个表,纵向切分

3、常用联接的建索引

4、服务器放几个硬盘,把数据、日志、索引分盘存放,这样可以提高IO吞吐率

5、用优化器,优化你的查询

6、考虑冗余,这样可以减少连接

7、可以考虑建立统计表,就是实时生成总计表,这样可以避免每次查询都统计一次

8、用极量数据测试一下数据

速度,影响它的因数太多了,且数据量越大越明显。

1、存储将硬盘分成NTFS格式,NTFS比FAT32快,并看你的数据文件大小,1G以上你可以采用多数据库文件,这样可以将存取负载分散到多个物理硬盘或磁盘阵列上。

2、tempdbtempdb也应该被单独的物理硬盘或磁盘阵列上,建议放在RAID0上,这样它的性能最高,不要对它设置最大值让它自动增长

3、日志文件日志文件也应该和数据文件分开在不同的理硬盘或磁盘阵列上,这样也可以提高硬盘I/O性能。

4、分区视图就是将你的数据水平分割在集群服务器上,它适合大规模OLTP,SQL群集上,如果你数据库不是访问特别大不建议使用。

5、簇索引你的表一定有个簇索引,在使用簇索引查询的时候,区块查询是最快的,如用between,应为他是物理连续的,你应该尽量减少对它的updaet,应为这可以使它物理不连续。

6、非簇索引非簇索引与物理顺序无关,设计它时必须有高度的可选择性,可以提高查询速度,但对表update的时候这些非簇索引会影响速度,且占用空间大,如果你愿意用空间和修改时间换取速度可以考虑。

7、索引视图如果在视图上建立索引,那视图的结果集就会被存储起来,对与特定的查询性能可以提高很多,但同样对update语句时它也会严重减低性能,一般用在数据相对稳定的数据仓库中。

8、维护索引你在将索引建好后,定期维护是很重要的,用dbccshowcontig来观察页密度、扫描密度等等,及时用dbccindexdefrag来整理表或视图的索引,在必要的时候用dbccdbreindex来重建索引可以受到良好的效果。

不论你是用几个表1、2、3点都可以提高一定的性能,5、6、8点你是必须做的,至于4、7点看你的需求,我个人是不建议的。

其实只要你打开数据库设计器就一目了然了。如下图:

黑体字是激活了的功能,灰色的是待激活功能,一旦打开了数据库中的表格,就自动激活。

表设计器如图所示:

功能分字段设计、索引设计、表设计,主要是字段设计,可用 *** 作是插入、删除、确定、取消。

字段名即关系的属性名或表的列名。长度:自由表1~10,库表1~128个字符。

规则:1必须以字母或汉字开头          2由字母、汉字、数字和下划线组成         3中间不能含空格

可选择的类型和宽度如下表:

 字符型          可选    

 货币型          8    

 数值型          可选    

 浮点型          可选    

 日期型          8    

 日期时间型          8    

 双精度型          8    

 整型          4    

 逻辑型          1    

 备注型          4    

 通用型          4    

 字符型(二进制)          可选    

 备注型(二进制)          4    

表的空值NULL选项

表示是否允许字段为空值。空值就是缺值或非确定值。它与空(或空白)字符串、数值0等都具有不同的含义。允许暂缺的字段值,需要与0区别的“0”值字段应允许为空值,而作为关键字的字段不能允许为空值。

如果是库表,还可显示显示组框,组框包括:

•格式:实质上是一个输出掩码,决定了输出风格。•输入掩码:用以限制或控制用户输入的格式。•标题:用于字段显示时的标题,可使界面更友好,编程更简捷。•字段注释:便于日后或他人维护数据库。•规则:有效性表达式,以判断是否有效。•信息:当有效性表达式为假时显示的信息。

够详细了吧,不懂再问。

1理解您的数据

在设计表之前,应明确您打算如何处理数据,还要了解随着时间的推移数据会发生什么样的变化。您所做的假设将会影响最终的设计。

2您需要什么样的数据

设计应用程序时,关键要了解设计的最终结果,以便确保您准备好所有必需的数据并知道其来源。例如,报表的外观、每个数据的来源以及所需的所有数据是否都存在。对项目损失最大的莫过于在项目后期发现重要报表缺少数据。

3明确所需数据的类型和来源

知道需要什么样的数据后,就必须确定数据的来源。数据是否从其他数据源中导入?数据是否需要清理或验证?用户是否需要输入数据?明确所需数据的类型和来源是数据库设计的第一步。

4您打算如何处理这些数据?

用户是否需要编辑这些数据?如果需要,应如何显示数据以便于用户理解和编辑?有没有验证规则和相关的查找表?要求对编辑和删除保留备份的数据输入有没有相关联的审核问题?需要为用户显示哪些摘要信息?是否需要生成导出文件?了解这些信息后,就可以想象字段之间是如何相互关联的了。

5数据之间如何相互关联?

将数据分组放入相关字段(例如与客户相关的信息、与发票相关的信息等),每个字段组都代表要建立的表。然后考虑如何将这些表相互关联。例如,哪些表具有一对多关系(例如,一个客户可能持有多张发票)?哪些表具有一对一关系(这种情况下,通常会考虑将其组合到一个表中)?

6随着时间的推移数据会发生什么样的变化?

设计表之后,常常会由于没有考虑时间的影响而导致以后出现严重问题。许多表设计在当时使用时效果非常好,但是,常常会因为用户修改数据、添加数据以及随时间的推移而崩溃。开发人员经常会发现需要重新设计表的结构来适应这些变化。表的结构发生变化时,所有相关的内容(查询、窗体、报表、代码等)也必须随之更新。理解并预测数据会随时间推移发生哪些变化,可以实现更好的设计,减少问题的发生。

7学习如何使用查询

了解如何分析和管理数据同样很重要。您应该深刻理解查询的工作原理,理解如何使用查询在多个表之间链接数据,如何使用查询对数据进行分组和汇总,以及如何在不需要以规范化格式显示数据时使用交叉表查询。

好的数据设计的最终目标就是要平衡两个需要:既要随着时间的推移有效地存储数据,又要轻松地检索和分析数据。理解查询的功能对正确设计表很有帮助。

以上就是关于多人访问一张表如何进行数据库设计全部的内容,包括:多人访问一张表如何进行数据库设计、大数据量的数据库表设计技巧、vfp中表格设计器和数据库设计器的功能。力求详细。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10162323.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存