0 0

关于多对多关系维护性能问题5

请教大家一个问题呢。
多对多的数据库关系维护一般采用哪种方式呢 ?
比如说 学生表和选课表 的中间表。学生在编辑选课信息后,取消了一些课程。新增了一些课程。
我现在的想法是是:
第一种做法:.(1)把这个学生的选课信息全部删除 (2)插入这个学生的所有选课信息
这种做法有性能浪费。
第二种做法是:把更新后的选课信息 在内存之中和更新前的进行对比。找出该删的删。该新增的新增。
这种就比较麻烦。而且需要将更新前的数据放在SESSION中或者更新后重新查一次。
各位觉得哪一种好呢。
2012年11月02日 15:44

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

0 0

两种都不是很好,既然是多对多维护中间多表就好了。

2012年11月02日 16:04

相关推荐

    11_传智播客JPA详解_JPA中的一对多延迟加载与关系维护

    本教程“11_传智播客JPA详解_JPA中的一对多延迟加载与关系维护”聚焦于JPA在处理一对多关系时的延迟加载机制以及如何有效地维护这些关系。 一、JPA一对多关系 在数据库中,一对多关系意味着一个实体可以与多个其他...

    11_JPA详解_JPA中的一对多延迟加载与关系维护.zip

    本资料主要探讨的是JPA中的一对多关系以及延迟加载机制,这两部分是JPA使用中的关键概念。 **一对多关系** 在关系数据库中,一对多关系是最常见的一种关联类型。例如,一个部门可以有多名员工,而每个员工只能属于...

    Hibernate多对多关联关系demo

    通过这个"Hibernate多对多关联关系demo",开发者可以学习如何在实际项目中设置和操作多对多关联,同时理解这些关联关系可能带来的性能和设计挑战。通过练习和实践,你将能够熟练地在Hibernate环境中管理复杂的实体...

    数据库开发 维护 性能调优 备份还原 各种复杂问题的解决方案

    数据库开发、维护、性能调优、备份还原以及解决复杂问题,是IT行业中数据库管理的核心环节。在SQL Server和DATABASE环境下,这些任务尤为重要。 首先,我们从数据库开发谈起。数据库开发涉及设计、创建和管理数据库...

    java学习--多对多,一对多关系(学校与学生,学生与课程)

    在数据库设计中,一对多关系通常用外键实现,而多对多关系则需要一个联合主键的中间表。在Java中,这些对应于实体类的属性和集合,以及ORM框架中的映射配置。 此外,理解这些关系对于设计高效的数据结构和数据库...

    多对多关系中Set的查询

    总之,理解和熟练掌握在多对多关系中使用Set进行查询对于开发高效、可维护的Java应用至关重要,尤其是在涉及到复杂数据关联时。通过灵活运用HQL,我们可以更方便地操作这些关系,实现所需的数据检索功能。

    hibernate(多对多关系映射)

    虽然多对多关系方便了数据操作,但如果不合理管理,可能会导致性能问题,比如N+1查询。因此,需要根据实际情况考虑是否使用`fetch`策略,如`@Fetch(FetchMode.JOIN)`,以一次性加载关联数据。 通过理解以上知识点...

    JPA一对多和多对一关系

    **JPA一对多和多对一关系详解** Java Persistence API(JPA)是Java平台上的一个标准,用于处理对象关系映射(ORM),使得开发者可以使用面向对象的方式来操作数据库。在JPA中,实体间的关系映射是核心概念之一,...

    14_传智播客JPA详解_JPA中的多对多双向关联的各项关系操作

    例如,学生和课程之间的关系就是一个典型的多对多关系:一个学生可以选修多门课程,一门课程也可以被多个学生选修。在JPA中,这种关系通过`@ManyToMany`注解来表示。 **双向关联**意味着在两个实体类中都有对彼此的...

    hibernate多对多关系

    对于多对多关联,合理利用缓存可以提高性能,但需注意并发控制和数据一致性问题。 在提供的压缩包文件`many2many`中,可能包含了实现上述多对多关系的示例代码。通过查看这些代码,你可以深入理解如何在实际项目中...

    Hibernat 使用Criteria查询多对多关系(SET集合)条件

    2. **性能考虑:** 在使用多对多关系查询时,需要注意避免N+1查询问题,即每次访问集合时都会触发一次数据库查询。可以通过`fetchMode`属性设置为`FetchMode.JOIN`或使用`createAlias`方法来预先加载集合,以提高...

    hibernate 多对多源代码

    虽然多对多关联方便了数据操作,但也可能导致性能问题,因为每次关联操作都需要涉及中间表。在大数据量的场景下,可能需要优化查询策略,比如使用JOIN查询而非多次单独查询,或者在业务层缓存部分关联数据。 总结,...

    角色(使用hibernate映射多对多的关系).zip

    在Java的持久化框架Hibernate中,处理数据库中的多对多关系是一项重要的任务。"角色(使用hibernate映射多对多的关系).zip"这个压缩包文件提供了一个实例,展示了如何利用Hibernate来映射数据库中的多对多关联。在...

    10 映射-- 多对多(老师与学生)

    对于源码分析,我们可以查看Hibernate源代码中关于多对多映射的相关实现,理解其内部逻辑。同时,利用诸如IntelliJ IDEA这样的开发工具,可以便捷地进行映射配置和调试。 通过以上讲解,我们可以看到,多对多映射...

    Hibernate的多对一和一对多操作实例

    在数据库层面,实现多对一和一对多关系通常涉及创建表之间的外键约束。但在本例中,作者提到了一种较为简化的设计方式,即不在数据库层面上明确设定外键,而是将逻辑关系的控制交给了Hibernate框架。这种方式虽然...

    大型网站架构系列之三 多对多关系的优化设计

    通过对多对多关系优化设计的讨论,我们可以看到,通过引入冗余字段、异步处理和标签缓存索引等技术手段,可以有效地解决大型网站中多对多关系带来的性能问题。此外,通过抽象化的处理方式,还可以大大减少开发工作量...

    ibatis 一对多关系映射

    在实际开发中,合理地使用Ibatis的一对多关系映射可以避免频繁的数据库查询,提高系统性能。同时,它也能帮助开发者将关注点从底层数据库操作转移到业务逻辑上,使代码更加简洁、易于理解和维护。因此,对于任何使用...

    MyBatis 多表查询之一对多、多对一、多对多以及数据库资料.rar

    在数据库中,多对多关系通常需要一个中间表来维护两个主表之间的关系。MyBatis处理多对多关系时,通常会创建一个联合主键的实体类,这个实体类代表中间表的一个记录。在Mapper XML中,可以使用`<collection>`和`...

    论文研究-一类引擎维护问题最优维护策略的性能下界 .pdf

    该方法的一个关键步骤是通过分析总维护费用中各个组成部分之间的关系,并在放松某些约束条件后,利用小规模的整数线性规划问题来获得最优策略性能的下界。这一下界可以作为一种评估工具,快速淘汰那些性能表现不佳的...

Global site tag (gtag.js) - Google Analytics