数据库设计过程遇到的零散点记录powerdesigner 数据库设计 表设计

希望可以完整记录该项目中涉及到数据库方面的各个点

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  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值