新手C#SQL Server使用记录2018.08.10

主键(PrimaryKey):主键就是每个数据行(记录)的唯一标识,不会有重复值的列(字段)才能当做主键。一个表可以没有主键,但是这样会很难处理表,因此一般情况表都要设置主键。

主键有两张选用策略,分为业务主键和逻辑主键。

业务主键是使用有业务意义的字段做主键,例如身份证号、银行账号等。

逻辑主键是使用没有任何业务意义的字段做主键,完全用来给程序看,是业务人员不会看的数据,推荐使用逻辑主键。

逻辑主键设置方法为将设计页面中列属性栏的表示规范切换为是即可,在输入记录时,逻辑主键字段可以不输入,系统自动匹配。当你删除了最后一条记录,它的主键为4,若新增一条记录,他会直接变为5而不是4。因为删除了的那条记录仍存在在系统表中,属于软删除。

 

外键(ForeignKey):外键表的某一列的值必须与主键表的主键的值一致,外键表就相当于引用了主键表的主键值。用于记录表和表的关联。一个主键可以具有多个外键。

主键选择和Guid(全球唯一标识符):SQLServer中两种常用的主键数据类型:int+标识符;或者是uniqueidentifier(Guid)。

用标识列实现字段自增可以避免并发的问题,在insert的时候不用指定主键的值,将字段的“是标识列”设置为“是”,一个表只能有一个标识列。

Guid算法是可以产生唯一标识的高效算法,他使用网卡MAC、地址、纳秒级时间、芯片ID码等算出来,保证每次生成的GUID永远不会重复,无论是同一个计算机上还是不同计算机,在公元3400年以前产生的GUID均不相同。SQLServer中生成GUID的函数的语句为newid(),而.NET中生成GUID的方法是:Guid.NewGuid(),返回值是Guid类型。

用int自增字段的优点是:占用空间小,无需开发人员干预,易读。缺点是:效率低,数据导入导出的时候很慢。

Guid的优点:效率高、数据导入导出方便。缺点是:占用空间大、不易读。

目前业界主流更倾向于使用Guid。

 

数据类型:

 

 

(var)char为ASCII编码,一个字符占一个字节,而当输入中文时,一个汉字占两个字节,比较适合于英文字符。而n(var)char采用的是Unicode编码,输入一个字符无论是英文还是中文都占两个字节,当输入中文时最好采用该字符串类型,因为可以匹配长度。text用于存储长文本信息,是一个指针(2G)。

 

 

2018.08.10

 

posted @ 2018-08-10 17:15  大大木瓜  阅读(219)  评论(0编辑  收藏  举报