Powerdesigner可以不将主表的字段设置为主键再做外键关联么?

baidu_17071589 2014-07-17 10:02:27
小弟用的Powerdesigner15.1,在用的时候发现在做外键关联的时候,需要将主表的字段设置为primary key,才能将这个字段做外键关联,请问:
1.可以不设置primary key就能做么?
2.如果能做,如何实现?
3.要是一个表有两个primary key,而sequence只设置了不做外键关联的那个primary key,会不会有影响?
...全文
465 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
WorldMobile 2014-07-17
  • 打赏
  • 举报
回复
引用 楼主 baidu_17071589 的回复:
小弟用的Powerdesigner15.1,在用的时候发现在做外键关联的时候,需要将主表的字段设置为primary key,才能将这个字段做外键关联,请问: 1.可以不设置primary key就能做么? 2.如果能做,如何实现? 3.要是一个表有两个primary key,而sequence只设置了不做外键关联的那个primary key,会不会有影响?
1.可以不设置primary key就能做么? 答:不能 2.如果能做,如何实现? 答:实现不了 3.要是一个表有两个primary key,而sequence只设置了不做外键关联的那个primary key,会不会有影响? 答:不会
向东流 2014-07-17
  • 打赏
  • 举报
回复
外键取值规则:空值或参照的主键值。 所以 1 不行 1个表只能有一个primary key,一个primary key可以有2个列
PB菜鸟 2014-07-17
  • 打赏
  • 举报
回复
楼上的回复很详细
PowerDesigner设计数据库使用步骤及规范 使用PowerDesigner可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。它可以制作多种数据模型,也能对团队设计模型进行控制。还可以与许多流行的软件开发工具,例如PowerBuilder、Delphi、VB等相配合使系统设计更优化并缩短开发时间。 并不是每个设计都需要用到PD,对于比较大型的项目,它是很好的,对于短平快类型的项目,例如时间要求一周左右的系统,没有必要使用,直接维护数据库即可,对于表的数量超过10个的系统,建议使用PD进行设计和交流。 创建概念数据模型(CDM) 1.1 创建CDM步骤 选择 文件建立新模型,弹出如图所示对话框,选择ConceptualDataModel模型(即概念数据模型),单击OK,即确认创建。 PowerDesigner设计数据库使用规范全文共15页,当前为第1页。双击资源浏览窗口中新创建的CDM 名称图标,打开CDM 模型属性窗口,进行相关属性信息设置。如下图: PowerDesigner设计数据库使用规范全文共15页,当前为第1页。 1.2 对象命名通用规范 以下三种规范属于基本规范,适用于本文所有数据库对象命名规范。 1、长度规范:凡是需要命名的对象其标识符均不能超过3个英文单词长度(30个字符),也即:Oracle中的表名、字段名,函数名,过程名,触发器名,序列名,视图名的长度均不能超过3个英文单词长度(30个字符); 2、构成规范:数据库各种名称必须以字母开头,但严禁使用SYS开头;名称只能含有字母,数字和下划线"_"三类字符,"_"用于间隔名称中的各语义字段;不要使用DUAL作表名; 3、大小写规范: 构成Oracle数据库中的各种名称(表明,字段名,过程名,视图名等等)的所有字符,必须使用大写,也就是不能在脚本中,对任何名称添加双引号""来设定字符的大小写形式,只要不采用""限制,Oracle自动会将各名称转化成大写。 PowerDesigner设计数据库使用规范全文共15页,当前为第2页。 PowerDesigner设计数据库使用规范全文共15页,当前为第2页。 进行ER设计的准备工作 2.1 实体命名不相同检查 PowerDesigner 默认不能存在相同名称的实体属性,这也是考虑到可能产生的一些如主键外键等名称冲突问题,但当进行实际数据库设计时,可能会多次使用相同数据项(DataItem)便于理解各实体。为此需要对更改PowerDesigner 相关设置。软件默认DataItem不能重复使用,需要进行以下操作: 选择工具Model Options,在 Model Setting 设置目录中,将Data Item下的Unique Code取消选中即可,系统默认将Unique Code和Allow Reuse均选中。 PowerDesigner设计数据库使用规范全文共15页,当前为第3页。同时该设置均是面向特定模型的,即针对当前模型有效,若希望在其它模型中也有此命名设置,则需要重新进行设置。不过在Check Model 时,如果选择全部Check,则依旧会报DataItem 重名的错误信息,这时需要我们在人为检查确认数据项无误时,可以在选择不对DataItem 不检查,如下图示: PowerDesigner设计数据库使用规范全文共15页,当前为第3页。 PowerDesigner设计数据库使用规范全文共15页,当前为第4页。 PowerDesigner设计数据库使用规范全文共15页,当前为第4页。 定义实体 3.1 创建entity 3.1.1 创建entity步骤 1、在CDM的图形窗口中,单击工具选项版上的Entity工具,再单击图形窗口的空白处,在单击的位置就出现一个实体符号。点击Pointer工具或右击鼠标,释放Entity工具。如图所示: 2、双击刚创建的实体符号,打开下列图标窗口,在此窗口"General"标签中可以输入实体的名称、代码、描述等信息。 PowerDesigner设计数据库使用规范全文共15页,当前为第5页。 PowerDesigner设计数据库使用规范全文共15页,当前为第5页。 Name:是用来在模型中标识一个实体,一般用于模型在界面中的显示(这个可以通过更改选项设置进行改变)。在一个模型当中,实体的名字不能重复。 Code:在模型转化时一般作为对象的物理名称,比如把实体属性的Code转化为数据库中的列名,一般采取与Name一致。 Generate:默认是选择状态,如果取消,则在转化为其他模型时,会忽略这个实体。 3.1.2 entity命名规范 CDM中的实体等价于PDM中的表。 1、表的命名只能使用英文字母,数字和下划线。 2、命名以是名词的复数形式,如cit
数据库的设计思路 一.数据库的设计思路 1.数据库的设计原则 遵循数据库设计的三个范式的要求,可以允许有少量的数据冗余。 一即对属性的原子性约束,要求属性具有原子性,不可再分解。 二即对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性。 三即对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段 没有冗余。但是如果设计的数据库完全满足这三个范式的话,又未必是最 好的数据库,为了提高数据库的运行效率,我们必须降低范式要求,允许 数据库有少量冗余数据。 主键外键设置 为了确保数据在数据库中的唯一性和关联性以及完整性,有必要对数据库进行 主键外键设置。 要善于识别与正确处理多对多的关系 中间表、报表和临时表 防止数据库设计打补丁的方法是"三少原则" 2.数据库设计的基本步骤 需求收集 对用户的使用的收集,能及最后系统能达到用户的使用要求。 概念设计 对收集到地需要进行合理的分组及拆分。 物理设计 对上一步的概念设计在PowerDesigner里进行实际的设计 实施阶段 把PowerDesigner里设计好的表产生SQL,然后在SqlServer里运行,产生各种 实体的表。 运行和维护 二.系统数据库的构成 1.基础类数据 设计此类数据是为了方便及规范用户的输入,以及提高速度 字典数据 系统中所有运用到的字段的各类属性 区域数据 各城市的区域划分 2.业务类数据 为了防止数据量过大,对数据库进行了水平的切割,分到每个城市一套表,这样 在查询和各种增删改操作的时候速度会更快。 楼盘数据 楼栋数据 房号数据 案例数据 统计数据 3日志类数据 为了数据都有据可查,以及错误的查找,设计了日志数据。 日志数据 4.用户类数据 为了系统的安全性,以及权限分割。 用户数据 权限数据 ----------------------- 数据库设计思路全文共2页,当前为第1页。 数据库设计思路全文共2页,当前为第2页。

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧