0 0

联合主键和复合主键区别0

在数据库中,
什么是联合主键和复合主键?
他们之间有什么区别?
他们应用场景是什么?
他们和普通主键id有什么区别?
2013年12月14日 23:44

1个答案 按时间排序 按投票排序

0 0

采纳的答案

什么是数据表的复合主键
所谓的复合主键 就是指你表的主键含有一个以上的字段组成
比如
create table test
(
   name varchar(19),
   id number,
   value varchar(10),
   primary key (name,id)
)

上面的name和id字段组合起来就是你test表的复合主键
它的出现是因为你的name字段可能会出现重名,所以要加上ID字段这样就可以保证你记录的唯一性
一般情况下,主键的字段长度和字段数目要越少越好

联合主键
什么是联合主键?
(主键原则上是唯一的,别被唯一值所困扰。)
顾名思义就是多个主键联合形成一个主键组合
一个简单的例子
主键A跟主键B组成联合主键
主键A跟主键B的数据可以完全相同(困扰吧,没关系),联合就在于主键A跟主键B形成的联合主键是唯一的。
下例主键A数据是1,主键B数据也是1,联合主键其实是11,这个11是唯一值,绝对不充许再出现11这个唯一值。(这就是多对多关系)
主键A数据 主键B数据
1      1
2      2
3      3
主键A与主键B的联合主键值最多也就是
11
12
13
21
22
23
31
32
33

2013年12月16日 09:04

相关推荐

    JPA注解实现联合主键

    首先,需要创建一个复合主键类来存储需要组成联合主键的属性。这个类需要实现`Serializable`接口,因为JPA会将主键对象序列化。以下是一个具体的例子: ```java package com.ericsson.adp.entity.cons; import ...

    JPA_5_联合主键

    **JPA 联合主键详解** ...在实际开发中,理解并熟练运用联合主键可以提高数据模型设计的灵活性,同时确保数据的完整性和一致性。通过持续学习和实践,可以更深入地掌握JPA及其在复杂业务场景下的应用。

    JPA中的联合主键

    理解和熟练使用联合主键是JPA开发中不可或缺的一部分,它能够帮助你构建更健壮、符合业务逻辑的数据模型。在实际项目中,要充分考虑联合主键的生成、赋值、查询以及与其他组件的交互,以确保数据完整性和一致性。

    初探SQL语句复合主键与联合主键

     上面的name和id字段组合起来就是你test表的复合主键 ,它的出现是因为你的name字段可能会出现重名,所以要加上ID字段这样就可以保证你记录的唯一性 ,一般情况下,主键的字段长度和字段数目要越少越好 。 这里就会...

    hibernate复合主键配置和使用

    然而,当我们面临复杂的数据表结构,尤其是涉及到复合主键时,如何在Hibernate中进行配置和使用就显得尤为重要。本文将深入探讨Hibernate对复合主键的支持,帮助开发者更好地理解和应用这一特性。 一、什么是复合...

    eos开发中的联合主键使用

    正确理解和使用联合主键,可以提升EOS智能合约的效率和可靠性,从而构建更加健壮的分布式应用程序。在实际开发中,开发者应根据业务场景灵活选择单主键或联合主键,并考虑合适的索引策略,以优化数据操作性能。

    android ormlite 模拟实现联合主键

    例如,假设我们有User和Department两个实体,它们通过用户ID和部门ID作为联合主键: ```java public class UserDepartment { @DatabaseField(columnName = "user_id") private String userId; @DatabaseField...

    JPA联合主键

    在实际开发中,联合主键常常出现在需要多对多关联的场景,例如上述的`ProductCategory`示例,产品和分类可以通过一对多、多对一的关系建立,但在某些情况下,可能需要通过一个联合主键来唯一标识一对多关系中的每个...

    使用@IdClass创建联合主键,并实现外部关联

    联合主键由buildID和centerID两个字段组成。 首先,我们需要创建一个BuildUnionPkId类,实现Serializable接口,并重写hashCode和equals方法。 ```java public class BuildUnionPkId implements Serializable { ...

    hibernate复合主键的实例

    在Hibernate中,通过定义`@Embeddable`的复合主键类和`@EmbeddedId`的实体类,我们可以方便地管理和操作这些复合主键的实体。在保存和查询时,需注意正确设置复合主键的值,以确保数据的正确性。希望这个实例能帮助...

    hibernate复合主键映射

    复合主键映射 <br>通常将复合主键相关属性,单独抽取出来,建立一个独立的类 * 必须实现序列化接口 * 必须实现equals和hashcode方法 采用标签进行映射,其它属性采用正常映射

    Hibernate复合主键视频2

    请更名为 Hibernate复合主键.part2.rar

    JPA学习总结(五)--JPACompositePK联合主键

    使用联合主键时,进行CRUD操作与普通实体无太大区别,只是需要传入完整的主键值。比如查询操作: ```java EntityManager entityManager = entityManagerFactory.createEntityManager(); Order order = ...

    postgreSQL复合主键

    关于postgreSQL复合主键的一些用法,希望对大家有用。

    Hibernate教程08_关系映射之联合主键

    在Hibernate中,实现联合主键可以通过使用`@Embeddable`和`@EmbeddedId`注解。首先,我们需要创建一个包含所有主键字段的类,并使用`@Embeddable`标记。这个类通常会作为其他实体类的属性,用`@EmbeddedId`注解。...

    JPA详解视频教程 第15讲 JPA中的联合主键.avi

    JPA用于整合现有的ORM技术,可以简化现有Java EE和Java SE应用对象持久化的开发工作,实现ORM的统一。JPA详解视频教程 第15讲 JPA中的联合主键.avi

    MySQL 创建主键,外键和复合主键的语句

    本文将详细介绍如何在MySQL中创建主键、外键以及复合主键。 1. **创建主键** 主键是数据库表中一个或一组字段,其值在全表中具有唯一性,并且不能为空。它用于唯一标识表中的每一行记录。在MySQL中,创建主键的...

    sql中设置联合主键的具体方法

    代码如下: ALTER TABLE 表名字 ADD CONSTRAINT pk_表名字 PRIMARY KEY( SNumber, SDate );... 您可能感兴趣的文章:sql server创建复合主键的2种方法MySQL 创建主键,外键和复合主键的语句初探SQL语句复合主键与联合主键

Global site tag (gtag.js) - Google Analytics