希望可以完整记录该项目中涉及到数据库方面的各个点
20151207
1、关于表主键的设置
根据上司要求,主键都设置成了自增长的类型(曾坚持用guid做主键,可以保证唯一性,用EF处理时也很方便,减少与数据库交互次数,但是被否决了)。但是,同时衍生出来的问题是:如果进行表格复制,主外键关系将出现约束,无法直接复制粘贴表格。需要truncate每个表。而且在写代码的时候也有些不太方便,比如:以主键为关联的话,纯数字虽然可能一定程度上提高了安全性(url中parameter也为纯数字)但是debug时就比较纠结了。无法快速定位哪条记录。
所以,目前想出的解决方案是,主键自增长。但是另外建一列内部编码。在主外键关联的时候,去内部编码列,这样可以避免粘贴数据时主键自增长而对应不上的问题。在代码中,也以内部编码列为主键,进行处理。缺点是:如果用EF,依旧无法改善多次与数据库交互的问题。
20151116
1、外键可以为null但是如果有值 必须为关联表的主键值
2、sqlserver中的数值类型和使用情况
20151117
1、int 10 2147483647 smallint 2 5 32767
2、datetime 8 23
3、powerdesigner 关系不能循环外键引用,会提示报错。
4、powerdesigner (1) 配置数据库
(2)配置数据库信息
(3)填写数据库信息即可
(4)生成sql语句
20151118
1、今天又生成了一下创建数据库脚本,并放到14中执行,发现主键不是自增,经度娘指点,在pd中设置一下主键属性即可。如图所示
2、Windows账号下附加了一个数据库,但是用测试账号时没有访问权限。修改测试账号的映射关系时,发现报错 15023 。结果对附加的库--属性--添加了owner之后就可以正常访问了。yes 。在这家公司最后一个.NET项目了。但是却是我的第一个.NET项目。希望做到完美。。。
2015-11-19
1、设置联合主键
创建复合主键:
方法一:创建表之后,alter table table_name add primary key(字段1,字段2)
方法二:CREATE TABLE 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null
字段名3…………
字段名N…………)
GO
ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)
GO