zoukankan      html  css  js  c++  java
  • ER图转关系模式, 强制参与和选择参与

    首先每个实体对应一个关系

    对于实体间存在的联系,得到映射基数后,还要知道参与联系的实体是强制参与还是选择参与,比如人拥有车的关系,每辆车都有主人,不一定每个人都有车,这里人就是选择参与,车是强制参与

    假设有实体A和B存在联系
    对于1:1的联系
      如果两边都是强制参与,可以将A的主键放到B的关系中或者将B的主键放到A的关系中,不必为这个联系新建一个关系
      如果一边是强制参与,一边是可选参与,则将可选参与一边的主键放到强制参与一边的关系中,不必为这个联系新建一个关系
      如果两边都是可选参与,则要为这个联系新建一个关系,其属性为两边的主键。

    对于1:多的联系
      如果多的一边是强制参与,则将1的一边的主键放到多的一方的关系中,不必为这个联系新建一个关系
      否则,新建一个关系,其属性为两边的主键

    对于多对多的关系
      新建一个关系,其属性为两边的主键

    上面为联系建立的关系不会出现NULL的情况,如果允许NULL,还可以这样

    对于1:1的联系 
      如果两边都是可选参与,也可以将任意一边的主键放到另一边作为一个属性,但该属性有可能为NULL

    对于1:多的联系
      如果两边都是选择参与,也可以将1的一边的主键放到多的一方的关系中作为一个属性,但该属性有可能为NULL

  • 相关阅读:
    leetcode Super Ugly Number
    leetcode Find Median from Data Stream
    leetcode Remove Invalid Parentheses
    leetcode Range Sum Query
    leetcode Range Sum Query
    leetcode Minimum Height Trees
    hdu 3836 Equivalent Sets
    hdu 1269 迷宫城堡
    hud 2586 How far away ?
    poj 1330 Nearest Common Ancestors
  • 原文地址:https://www.cnblogs.com/dirichlet/p/1886455.html
Copyright © 2011-2022 走看看