PowerDesigner提示This data item is already used in a primary identifier.的处理

本文介绍了如何解决在编制数据库脚本时出现的Thisdataitemisalreadyusedinaprimaryidentifier错误。通过调整Tool菜单下的ModelOption设置,取消DataItem中的Uniquecode选项来解决问题。此外,还提到了在CDM到PDM转换过程中遇到属性错误时的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天同事在编制一个数据库脚本的时候,提示了This data item is already used in a primary identifier.的错误。

处理的方法为:

菜单栏上的“tool”-〉“Model Option”-〉“Model Setting”

把右边的“Data Item”数据框中的“Unique code”选项框取消掉。

 

如果在由CDM-〉PDM转换的时候提示属性错误,请把PDM GENERATION OPTIONS中的Check model钩取消掉.

<think>我们正在处理关于PowerDesignerData Item被另一个实体使用的情况。根据引用内容,特别是引用[3]和引用[4],我们可以了解到PowerDesigner中数据项(Data Item)的重用机制。关键点:1.数据项是信息存储的最小单位,可以附加在实体上作为属性。 2.在Tools->Model Options-> ModelSettings中,可以设置数据项的唯一性代码选项(Unique Code)和重用选项(AllowReuse)。 3.如果允许重用(Allow Reuse),则一个数据项可以被多个实体使用(即作为多个实体的属性),而不需要重复创建。处理一个Data Item被另一个实体使用的情况,有两种方式: -重用已有的数据项(Reusea DataItem):直接引用已存在的数据项,不创建新的数据项。-添加数据项(Add aData Item):复制一个已存在的数据项,生成一个新的数据项(如果设置了Unique Code,则新数据项的Code会自动生成唯一号码)。 因此,当我们需要让另一个实体使用同一个数据项时,应该选择“重用”(Reuse)的方式。 具体操作步骤(根据引用[3]和[4]): 1.打开目标实体的属性窗口(双击实体符号)。 2.切换到“Attributes”选项卡。3.点击“Reuse aData Item”按钮(注意不是“Add aData Item”)。4.在弹出的数据项列表中,选择已经存在的数据项。5.确认后,该数据项就被添加到当前实体的属性中,且是引用关系,不会创建新的数据项。注意:在重用之前,必须确保在模型选项中已经勾选了“Allow Reuse”(允许重用)。如果没有勾选,则无法重用,只能添加(复制)。 设置允许重用的步骤(引用[3]): 1.菜单栏:Tools-> ModelOptions。2.在打开的Model Options对话框中,选择ModelSettings。3.Data Item组框中,勾选“Allow Reuse”。这样,同一个数据项就可以被多个实体共享使用,保证了数据项定义的一致性,也避免了重复定义。 相关问题: 1.如何在PowerDesigner中设置数据项的重用? 2.重用数据项和添加数据项有什么区别? 3.为什么在实体属性中找不到“Reusea DataItem”按钮?4.如何确保多个实体共享同一个数据项的定义?</think>在PowerDesigner处理Data Item被多个实体使用的情况,主要涉及**重用机制(Allow Reuse)** 和**唯一性控制(Unique Code)** 的设置,具体操作如下: ### 核心处理步骤 1. **启用重用选项** 前往 `Tools > Model Options > Model Settings`: ✓ 勾选 **Allow Reuse**(允许数据项被多个实体重用) ⬜ 如需要唯一标识符,勾选 **Unique Code**(确保数据项代码全局唯一) [^2][^3] ```mermaid graph LR A[Tools菜单] --> B[Model Options] B --> C[Model Settings] C --> D[勾选 Allow Reuse] C --> E[可选 Unique Code] ``` 2. **实体中添加重用数据项** - 双击目标实体打开属性窗口 - 切换到 **Attributes** 选项卡 - 点击 **Reuse a DataItem** 按钮(非Add按钮) - 从列表中选择已存在的数据项[^3][^4] > 关键区别: - `Add a DataItem` → 创建副本(生成新数据项) - `Reuse a DataItem` → 直接引用原数据项(无副本)[^3] 3. **验证重用效果** - 修改被重用的数据项属性(如数据类型、长度) - 所有引用该数据项的实体会**自动同步更新**[^4] ### 应用场景示例 假设有 `客户` 和 `订单` 两个实体需要共享 `手机号` 数据项: 1. 创建数据项:`PhoneNumber` (长度20) 2. 在 `客户` 实体中:Reuse → 选择 `PhoneNumber` 3. 在 `订单` 实体中:Reuse → 选择 `PhoneNumber` 4. 当修改 `PhoneNumber` 长度为30时,两实体的对应属性同步更新 ### 注意事项 1. **模型一致性** 启用 `Unique Code` 可避免代码冲突,但会限制跨模型重用[^3] 2. **未附加数据项** 允许存在未关联实体的"游离数据项",可在后期重用[^3] 3. **域(Domain)应用** 对高频重用的数据项(如金额、日期),建议先定义域,再通过域创建数据项[^4] > **最佳实践**:对于需要严格保持一致的基础字段(如ID、标准编码),务必使用重用机制而非复制添加。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值