zoukankan      html  css  js  c++  java
  • 实体间的关系:1:1,1:N,M:N

    *实体之间的关系*

    1)1对1关系:

    两个实体表内,存在相同的主键字段。

      1.1)设计:

             如果记录的主键值等于另一个关系表内记录的主键值,则两条 记录对应,1:1对应。


    例子:

    #表一:学生信息表          #表二:学生详细信息表


    学生主键   学号   姓名    *     学生主键   生日   住址
                   *
      1    1101      张三     *        1    10.15   北京
      2    1102      李四     *        2       12.15   上海


    【注意】:
    垂直分隔在优化的角度上来讲,如果说一个表内的字段过多,就应该将其拆分出来,
    分为哪些常用和哪些不常用,同时分割成两个或者多个表,只要每一个表内有相同的主键就行。


    2)一对多关系:
          一个实体对应多个其它实体。
    例如:一个班级对应多个学生。


        2.1)设计:
          在多的那端,增加一个字段,用于指向该实体所属的另外的实体的标识。

    例子:

    #表一:学生主信息表         #表二:班级表


    学生主键   学号   姓名   班级号    *   班级主键   开班时间   课程
      1     1101   张三        8        *      8    2018-08-10   JAVA
      3        1102   李四        9        *      9    2018-10-10   LINUX
      5        1103   王五        8     *
      6        1104   赵四     8        *


    3)多对多关系:

        3.1)设计:
            利用一个中间关系表来表示实体之间的对应关系。

    例子:

    #表一:老师信息表        #表二:班级信息表


    讲师主键   名字    *      班级主键   班级名
    1          赵四    *          10      1101
    3          张三    *          15           1105

    想要表达表一和表二之间的多对多关系(赵四教了1105班;张三教了1101和1105班),需要借助一个中间关系表。

    #表三:中间关系表
    讲师主键   班级主键
    1       1105
    3       1101
    3       1105

    【注意】

        中间表的每个记录,表示一个关系。

  • 相关阅读:
    tornado与asyncmongo
    Grails/Groovy学习资源
    关于markdown
    Grails一些重要的配置文件
    Grails的目录结构
    Grails中的UrlMapping
    MVC已死,该是用MOVE的时候了
    算法——回溯法
    算法——分支限界法
    C#如何操控FTP
  • 原文地址:https://www.cnblogs.com/python-wen/p/10034752.html
Copyright © 2011-2022 走看看