zoukankan      html  css  js  c++  java
  • 外键映射

    • 把对象间的关系映射到DB表键的外键引用
      • 对象之间可以通过对象引用来互相直接访问.
    • 运行机制
      • 关键是标识域.
      • 一对一的关联.使用一个DB的外键取代.
      • 一对多的对象集合.
        • 不能在DB中把相连的对象集合都保存了.
        • 必须颠倒引用的方向
          • 一张唱片有多个曲目,那么在曲目表中保存唱片的外键.
        • 更新时较为麻烦
          • 插入和删除
            • 在多的一方(曲目)是依赖映射时(只能被唱片所拥有,而不能被其它处引用).
            • 容易实现.删除与唱片相连的所有曲目,再把唱片中所有当前曲目记录插入进来.
          • 加入一个向后指针
            • 为了让关联双向化.在曲目上加入一个指向唱片的链接.
            • 改变了对象模型,可以以处理单值域的技术来处理更新.
          • 进行一次区分
            • 通过数据库的当前状态区分.
              • 从DB中重读(曲目)对象集合,并与从唱片中读取出的(曲目)集合比较.得出需要删除和保存的新曲目.
            • 通过第一次读取的数据区分.
              • 首次读取后,保存结果集.避免了另一次的DB读取.
              • 但是,当使用了乐观离线锁时,还是需要通过数据库的当前状态来区分.
        • 要加入到对象集合中的项目.
          • 需要首先检查它是否是新对象.如果是,先将其保存到DB中.如果不是,在DB中查找到它,更新其外键值来指向当前的唱片.
        • 移出记录
          • 情况
            • 移到另外的唱片中去了.
            • 已经没有唱片与之对应了.置外键为空.
            • 已经被删除了.
        • 链接中的循环
          • 使用包含完整构造数据的构造方法.并在合适的位置上放置延迟加载来打破循环.
          • 创建空对象,并立刻把它们放到一个标识映射中.当产生循环时,该空对象会被加载,循环会被终止.
    • 使用时机
      • 不适用于多对多的关联.外键是单值的.此时使用关联表映射.
      • 如果关联对象是值对象,那么使用嵌入值.
  • 相关阅读:
    SOJ 1035 DNA matching
    SOJ 1027 MJ,Nowhere to Hide
    SOJ 1021 Couples
    SOJ 1020 Big Integer
    C#中正则表达式的简单使用
    根据HTTP header收集客户端相关信息 --- tornado demo
    IIS7配置Gzip压缩
    网站性能工具Yslow的使用方法
    配置ETags
    细说ETags以及如何在 IIS6和 IIS7下取消ETags
  • 原文地址:https://www.cnblogs.com/robyn/p/3523597.html
Copyright © 2011-2022 走看看