Sybase.在PowerDesigner中如何添加-约束
Sybase.在PowerDesigner中如何添加-约束
资料 2010-06-23 08:57:09 阅读21 评论0 字号:大中小 订阅
唯一约束
唯一约束与创建唯一索引基本上是一回事,因为在创建唯一约束的时候,系统会创建对应的一个唯一索引,通过唯一索引来实现约束。不过唯一约束更直观的表达了对应列的唯一性,使得对应索引的目的更加清晰,所以一般建议创建唯一约束而不是只创建唯一索引。
在PD中创建唯一约束的操作,以教室表来说,RoomID是主键,必然是唯一的,RoomName如果我们也要去必须是唯一的,那么具体操作如下:
在PD的模型设计面板中,双击“教室”表,打开属性窗口,切换到"”Keys”选项卡,可以看到里面有一行数据PK_ClassRoom,这是主键约束。添加一行数据,命名为UQ_RoomName,不能将右边的“P”列选上,然后单击工具栏的“属性”按钮,弹出UQ_RoomName的属性窗口,切换到列选项卡,单击增加列按钮,选择将RoomName列添加到其中,然后单击确定即可完成唯一约束的添加。
这样系统就会自动创建唯一约束。
CHECK约束
CHECK分为列约束和表约束,列约束是只对表中的某一个列进行的约束,可以在列的属性中进行设置,而表约束是对多个列进行的约束,需要在表的属性中进行设置(其实列约束也可以在表约束中设置)。
1.标准CHECK约束
对于一些常用的CHECK约束,可以直接通过设置界面来完成。以班级表为例,ClassName每个学校有自己的命名规则,假设这里规定ClassName必须以2开头,那么需要在ClassName列上定义CHECK约束,使得其满足命名规范。具体操作是在PD中双击Class表,打开Class的属性窗口,切换到列选项卡,选择ClassName列,单击工具栏的“属性”按钮,弹出ClassName的属性窗口,切换到StandardChecks选项卡如图:
在这个选项卡可以定义属性的标准检查约束,窗口中每项的参数的含义,如下:
参数 | 说明 |
Minimum | 属性可接受的最小数 |
Maximum | 属性可接受的最大数 |
Default | 属性不赋值时,系统提供的默认值 |
Unit | 单位,如公里、吨、元 |
Format | 属性的数据显示格式 |
Lowercase | 属性的赋值全部变为小写字母 |
Uppercase | 属性的赋值全部变为大写字母 |
Cannot modify | 该属性一旦赋值不能再修改 |
List Of Values | 属性赋值列表,除列表中的值,不能有其他的值 |
Label | 属性列表值的标签 |
2.直接编写SQL语句的CHECK约束
在前面弹出ClassName属性窗口中,单击左下角的“More”按钮,系统将弹出更多的选项卡,切换到“Additional Checks”选项卡,可以设置约束名和具体的约束内容,如图所示:
表级的CHECK约束与列级的CHECK约束设置类似,单击表属性窗口左下角的“More”按钮,切换到Check选项卡,设置CHECK约束的命名和SQL语句内容。
3.使用Rule创建约束
同样以班级名必须以2开头为例,通过Rule创建CHECK约束。首先需要创建一个Rule,双击Class表,打开表的属性窗口,切换到Rules选项卡,单击“Create a Object”按钮,系统将打开一个业务规则属性窗口,修改规则名,并将规则的类型修改为Constraint,如图所示:
然后切换到Expression选项卡,设置规则的内容为“ClassName LIKE '2%'”,单击确定按钮即可完成Rule的设置。切换到表属性的Check选项卡,默认约束内容中的“%RULES%”就是用来表示Rule中设置的内容,如果我们还有一些其他的CHECK约束内容,不希望在Rule中设置,而是在Check选项卡中设置,那么只需要删除%RULES%将CHECK约束内容添加进去,也可以保留%RULES%,然后在与%RULES%之间添加一个and即可。比如规定ClassID必须小于10000,那么我们可以将Check内容设置如下:
生成的脚本如下:
create table Class (
ClassID int not null,
ClassName varchar(20) not null,
constraint PK_CLASS primary key nonclustered (ClassID),
constraint CKT_CLASS check (ClassID<10000),
constraint ClassNameRule check (ClassName LIKE '2%')
)
go
可以看到,根据Rule生成的CHECK约束与在Check选项卡中设置的约束将分别创建一个约束,相互并不影响。
默认约束
默认约束是用户在没有输入值的情况下,系统给出默认的值。最常用的是CreateTime字段,设置默认值为getdate(),在用户创建一行数据时记录下创建时间。例如对于选课表,需要记录下选课的时间,则可以设置ApplyTime的默认值为getdate()函数。
设置默认值约束的操作如下:双击选课表,打开表属性窗口,选择ApplyTime字段,单击工具栏的属性按钮,打开列的属性窗口,切换到Standard Checks选项卡,在Default下拉列表框中选择getdate()即可。
至此我们所有的约束在PD中的设置都介绍完了,下一篇将介绍视图、存储过程等数据库对象。
Sybase.在PowerDesigner中如何添加-约束的更多相关文章
- Xib中UIScrollView添加约束步骤
要往scrollView里面添加子控件--从向往下排 0.设置scrollView的上下左右约束距离控制器view边距为零(确定frame的大小) 1.要往scrollView添加一个内容View 2 ...
- PowerDesigner中添加约束
唯一约束 唯一约束与创建唯一索引基本上是一回事,因为在创建唯一约束的时候,系统会创建对应的一个唯一索引,通过唯一索引来实现约束.不过唯一约束更直观的表达了对应列的唯一性,使得对应索引的目的更加清晰,所 ...
- ios UIScrolloView在storyboard中添加约束
1.在storyboard中如果有UINavigationbar 或 UITabar 布局的时候需要在控制器中勾选掉 Under Top Bars 和 Under Bottom Bars 这两个选项. ...
- Sql语句在SqlServer中创建数据库、表格并添加约束
通过Sql语句来创建数据库与架构 创建数据库 数据库的创建首先是要引用主数据库的,需要在master数据库的环境下进行创建.大致的语法如下: -- 使用master数据库 use master -- ...
- Storyboard中使用UIscrollView添加约束的开发总结
第一次在项目中用storyboard做界面,一般的界面直接添加约束非常爽快 然后有个界面有scrollview,添加了约束还总是出错 刚开始使用了 wCompact,hRegular,滑动出现问题,有 ...
- 在powerdesigner中创建物理数据模型
物理数据模型(PDM)是以常用的DBMS(数据库管理系统)理论为基础,将CDM/LDM中所建立的现实世界模型生成相应的DBMS的SQL语言脚本.PDM叙述数据库的物理实现,是对真实数据库的描述 PDM ...
- iOS - XIB之AutoLayout添加约束
XIB--AutoLayout添加约束 仿QQ登录界面: 说明:以下各图背景红色只是方便看清楚: 1.创建工程:创建xib文件 2.打开xib文件: (1).创建头像: 拖控件:uiimageview ...
- uiscrollView UINavigation和uitabbar添加约束的问题
首先是层次问题, 我的storyboard中 底层是一个View(viewcontroller自带)上面添加了一个UIScrollview(添加约束, 上下左右全为0), 在UIScrollview上 ...
- 使用SQL语句向已有数据表添加约束
如果向存在数据的表里添加约束,有可能会出现数据不符合检查约束而造成添加约束失败. 如: 这是一个表,为身份证号添加检查约束. USE DEmo--指向当前操作的数据库 GO ALTER TABLE E ...
随机推荐
- zookeeper curator ( 实战一)
目录 zookeeper 的伪集群搭建 写在前面 1.1. zookeeper 安装&配置 1.1.1. 创建数据目录和日志目录: 1.1.2. 创建myid文件 1.1.3. 创建和修改配置 ...
- php调用短网址接口
<?php $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,"http://dwz.cn/create.php"); curl_se ...
- 【题解】[P4178 Tree]
[题解]P4178 Tree 一道点分治模板好题 不知道是不是我见到的题目太少了,为什么这种题目都是暴力开值域的桶QAQ?? 问点对,考虑点分治吧.直接用值域树状数组开下来,统计的时候直接往树状数组里 ...
- php标准库DirectoryIterator类的操作说明
<?php $dir = new DirectoryIterator(dirname(__FILE__)); foreach ($dir as $fileInfo) { if ($fileInf ...
- django mysql setting 设置
django mysql setting django mysql 设置 DATABASES = { 'default': { 'ENGINE': 'django.db.back ...
- 【windows】更改最大动态端口数
最近业务遇到一个奇怪的问题,一台iis服务器,居然报端口不足的错误,分析应该是服务器可用的动态端口数不够了,windows默认的动态端口范围为:1024-5000,也就是最多3977个动态端口可用,如 ...
- Ubuntu/CentOS下使用脚本自动安装 Docker
Ubuntu.Debian 系列安装 Docker 系统要求 Docker 支持以下版本的 Ubuntu 和 Debian 操作系统: Ubuntu Xenial 16.04 (LTS) Ubuntu ...
- 《机器学习实战》学习笔记第十三章 —— 利用PCA来简化数据
相关博文: 吴恩达机器学习笔记(八) —— 降维与主成分分析法(PCA) 主成分分析(PCA)的推导与解释 主要内容: 一.向量內积的几何意义 二.基的变换 三.协方差矩阵 四.PCA求解 一.向量內 ...
- HDU 4405 Aeroplane chess:期望dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4405 题意: 你在下简化版飞行棋... 棋盘为一个线段,长度为n. 上面有m对传送门,可以直接将你从a ...
- PHP之面向对象PHP之面向对象(面向对象是什么)
PHP之面向对象(面向对象是什么) 一.总结 一句话总结: 面向对象就是类:类都要 属性 和 方法 比如人:属性比如身高体重,方法比如吃饭喝水 面向对象中 ,方法即是函数 : 属性即是变量 ,只是面相 ...