精华内容
下载资源
问答
  • 数据库一对一、一对多、多对多关系

    万次阅读 多人点赞 2018-01-10 15:54:10
    数据库一对一、一对多、多对多关系  本来数据库一对一、一对多、多对多关系并不复杂,但是最近在理解的时候感觉又感觉多了写新意,所以现在在来总结一下吧 一、首先给出三种关系的实例 1、一对一关系实例 ...
    数据库一对一、一对多、多对多关系

         本来数据库一对一、一对多、多对多关系并不复杂,但是最近在理解的时候感觉又感觉多了写新意,所以现在在来总结一下吧
    一、首先给出三种关系的实例
    1、一对一关系实例
       * 一个人对应一张身份证,一张身份证对应一个人
    2、一对多关系实例
       * 一个班级拥有多个学生,一个学生只能够属于某个班级
    3、多对多实例
       * 一个学生可以选修多门课程,一个课程可以被多个学生选修

    二、一对一关系

    一对一关系是最好理解的一种关系,在数据库建表的时候可以将人表的主键放置与身份证表里面,也可以将身份证表的主键放置于人表里面

    三、一对多关系


    • 班级是1端,学生是多端,结合面向对象的思想,1端是父亲,多端是儿子,所以多端具有1端的属性,也就是说多端里面应该放置1端的主键,那么学生表里面应该放置班级表里面的主键

    四、多对多关系

    对于多对多关系,需要转换成1对多关系,那么就需要一张中间表来转换,这张中间表里面需要存放学生表里面的主键和课程表里面的主键,此时学生与中间表示1对多关系,课程与中间表是1对多关系,学生与课程是多对多关系

    四、总结

    总而言之,最重要的关系就是1对多关系,根据面向对象思想在建表的时候将1端主键置于多端即可。


    展开全文
  • Django数据库一对多数据关系

    千次阅读 2017-10-10 19:24:08
    本文主要描述Django数据中一对一的数据关系,创建app等配置不再赘述。 Django操作数据库,使用ORM ORM:关系映射对象,把传统的...一对多关系是通过‘子表’中设置‘父表’的外键约束来完成关联 父表的一个数据对应

    本文主要描述Django数据中一对一的数据关系,创建app等配置不再赘述。

    Django操作数据库,使用ORM

    ORM:关系映射对象,把传统的SQL语句封装成了类和对象的形式,在操作表中的记录时,就像在操作类和对象一样。

    使用默认数据库:sqlite

    操作在models.py文件中完成。

    一对多数据关系:

    一对多关系是通过‘子表’中设置‘父表’的外键约束来完成关联

    父表的一个数据对应子表中的多个数据

    举例:班级和学生

    class Classes(models.Model):
        id = models.AutoField(primary_key=True)
        name = models.CharField(max_length=10, null=True)  # 班级名称
        num = models.IntegerField(null=True)  # 班级人数
    
        class Meta:
            db_table = 'Classes'
    
        def __unicode__(self):
            return 'classname:%s | classnum:%s' % (self.name, self.num)
    
    
    class Student(models.Model):
        id = models.AutoField(primary_key=True)
        # 关联‘父表’,设置外键
        classes = models.ForeignKey(Classes, on_delete=models.CASCADE)
        name = models.CharField(max_length=20, null=True)
        age = models.IntegerField(null=True)
    
        class Meta:
            db_table = 'Student'
    
        def __unicode__(self):
            return 'studentname:%s | studentage:%s' % (self.name, self.age)

    创建完数据库模型之后,我们要创建数据库变更文件以及应用表更文件等操作,具体操作步骤,参考上篇文章《Django数据库一对一数据关系》


    对数据表中数据的查询操作

    1)从子表中查询父表的数据

    print  s1.classes.num 学生在所在班级的总人数

    print s1.classes 学生所在班级的所有信息


    2)从父表中查询子表的相关数据

    1. 查询一个班级的所有学生,通过student_set属性查询

    print c1.student_set.all()

    2.filter:根据条件,去结果集中进行匹配查询

    print c1.student_set.filter(name='lisi')

    3. get :根据条件,去结果集中进行匹配查询

    print  c1.student_set.get(name='lisi')


    get()和filter()方法的区别

    get():只能查询出一个结果,如果查询的结果不止一个,name使用get()方法会报错

    filter():可以根据条件,匹配一组结果,得到一个结果集


    XXX.set :Django提供的用于通过主模型(父表)对象访问子模型(子表)对象集合的属性名。

    展开全文
  • 个公司有台车辆。设备安装在车辆上。需要填写绑定信息。sim卡安装在设备上 是否开通。 目前是。设备表。sim表。安装表关键。车辆与设备。车辆表。公司表 查询时需要查询某个公司的某台车辆是否绑定某台设备。...
  • 数据库一对多、 多对多案例

    千次阅读 2018-08-22 21:21:34
    数据库一对多案例(一个旅游类别对应多个旅游路线) 一个旅游的类别对应多个旅游线路。类别与旅游线路表是属于1对多的关系: #创建一个旅游类别表 CREATE TABLE tab_category( #旅游线路分类主键 cid INT ...
    • 数据库一对多案例(一个旅游类别对应多个旅游路线)

      一个旅游的类别对应多个旅游线路。类别与旅游线路表是属于1对多的关系

    #创建一个旅游类别表
    CREATE TABLE tab_category(
      #旅游线路分类主键
      cid INT PRIMARY KEY AUTO_INCREMENT, 
      #旅游线路分类名称 
      cname VARCHAR(100) NOT NULL UNIQUE
    );
    INSERT INTO tab_category(cname)VALUES('国内自助'),('出境自助'),('国内跟团'),('周边自驾');
    #创建一个旅游线路表
    CREATE TABLE tab_route(
      #旅游线路主键
      rid INT PRIMARY KEY AUTO_INCREMENT,
      #旅游线路名称
      rname VARCHAR(100) NOT NULL UNIQUE,
      #价格
      price DOUBLE NOT NULL,
      #线路介绍
      routeIntroduce VARCHAR(200),
      #是否上架
      rflag CHAR(1) NOT NULL,
      #上架时间
      rdate VARCHAR(19) NOT NULL,
      #是否主题旅游
      isThemeTour CHAR(1) NOT NULL,
      #收藏数量
      acount INT DEFAULT 0,
      #所属分类
      cid INT NOT NULL,
      #缩略图地址
      rimage VARCHAR(200) NOT NULL,
      CONSTRAINT category_route_FK FOREIGN KEY(cid) REFERENCES tab_category(cid)
    );
    • 多对多的关系(一个用户可以收藏多个旅游路线,一个旅游路线可以被用户用户收藏)
    • 关系:多对多的关系
    1. 一个用户可以收藏多个旅游路线。
    2. 一个旅游路线可以被多个用户收藏。
    #创建用户表
    CREATE TABLE tab_user (
    uid INT PRIMARY KEY AUTO_INCREMENT, -- 用户id
    username VARCHAR(100) NOT NULL UNIQUE, -- 用户名
    PASSWORD VARCHAR(30) NOT NULL, -- 密码
    NAME VARCHAR(100), -- 真实姓名
    birthday DATE, -- 生日
    sex CHAR(1), -- 性别
    telephone VARCHAR(11), -- 手机号
    email VARCHAR(100), -- 邮箱
    STATUS CHAR(1) NOT NULL, -- 是否激活状态
    CODE VARCHAR(32) NOT NULL UNIQUE -- 激活码
    );
    #添加用户数据
    INSERT INTO tab_user VALUES
    (NULL, 'cz110', 123456, '老王', '1977-07-07', '男', '13888888888', '66666@qq.com', '是', '1386'),
    (NULL, 'cz119', 654321, '小王', '1999-09-09', '男', '13999999999', '99999@qq.com', '是', '9898');
    #创建收藏表
    CREATE TABLE tab_favorite (
    fid INT PRIMARY KEY AUTO_INCREMENT, -- 收藏主键
    rid INT NOT NULL, -- 旅游线路id
    DATE DATE NOT NULL, -- 收藏时间
    uid INT NOT NULL -- 用户id
    );

     

    #增加收藏表数据
    INSERT INTO tab_favorite VALUES
    (NULL, 1, '2018-01-01', 1), -- 老王选择厦门
    (NULL, 1, '2018-01-01', 2), -- 老王选择桂林
    (NULL, 1, '2018-01-01', 3), -- 老王选择泰国
    (NULL, 2, '2018-01-01', 2), -- 小王选择桂林
    (NULL, 2, '2018-01-01', 3), -- 小王选择泰国
    (NULL, 2, '2018-01-01', 5); -- 小王选择迪士尼
    #描述用户与旅游路线的关系(多对多的关系)
    CREATE TABLE route_user(
         r_id   INT , #旅游路线的id
         u_id  INT , #用户的id
         #建立外键的关系
         CONSTRAINT route_user_fk1 FOREIGN KEY(r_id)  REFERENCES tab_route(rid),
         CONSTRAINT route_user_fk2 FOREIGN KEY(u_id)  REFERENCES tab_user(uid),
         #设置为联合主键
         PRIMARY KEY(r_id,u_id)
              
    );
    

    更多资料,搜索或扫码关注公众号:数说Cloud

    展开全文
  • 关系数据库中,一对多关系使用的非常普遍,多对多关系也时有用到,而一对一关系用的非常之少,本篇将展示一个一对一关系的使用示例。 首先我们有这样一个数据库: 这是一个简单的商业数据库,现在有一个需求:要求...

    关系数据库中,一对多关系使用的非常普遍,多对多关系也时有用到,而一对一关系用的非常之少,本篇将展示一个一对一关系的使用示例。

    首先我们有这样一个数据库:

    2009-5-28 0-19-17

    这是一个简单的商业数据库,现在有一个需求:要求用户可以上传多个图片以展示商品、商铺、市场、品牌,那么怎么设计呢?

    首先想到的是为每个表追加一个附属表用于专门存储图片,那么先创建市场照片表:

    2009-5-28 0-23-06

    接着是商铺照片表:

    2009-5-28 0-25-51

    马上你就会发现这样冗余很多,并且假如新增了一个网店表,那么还得为其增加网店照片表,假如对照片记录的信息不满意,想添加一个等宽缩略图字段,那么得修改所有的照片表,这无疑是痛苦的。Thinking

    那么我们可以考虑把照片单独提出来作为一个表,统一存放,然后新建映射表用于存放各表的映射,以形成多对多关系:

    2009-5-28 0-37-45

    这样我们就可以在照片表内肆意存放各类信息,而不用担心重复劳动了。Open-mouthed

    不过得细想一下现在的关系:一个品牌可以有多个照片;一个照片可以被多个品牌使用。

    这不太符合我们的意图,照片是不能被其他品牌盗用的,那么解决办法就是将映射表中的照片设为主键,使之不会重复,那么映射表和照片表之间的关系就会自动变为一对一关系:

    2009-5-28 0-43-43

    这时照片和品牌的关系就变成了零或一对多关系,之所以是零或一,是因为照片表里的照片不一定总是对应到品牌表的。

    其他映射表也应该按照此方法修改,才真正达到我们的设计要求。

    完成后的总览:

    all

    示例数据库下载:


    打开 App_Data20090528021257.rar打开 App_Data20090528021257.rar
    App_Data200905280212


    本文转自斯克迪亚博客园博客,原文链接:http://www.cnblogs.com/SkyD/archive/2009/05/28/1491214.html,如需转载请自行联系原作者

    展开全文
  • 数据库实体间有三种关联关系:一对一,一对多,多对多。一对一实例:一个学生只有个身份证编号。 一对多实例:一个班级有多个学生。 多对多实例:多对多就是双向一对多,一个学生可以选择多门课,一门课也有多名学生...
  • 我的电脑系统:Windows 10 64位 ...关系的分类(假设是A表和B表)第一种分类: 一对一 (详述一对关系及其实现)(一对一,几乎不使用。所以,我们就一句话带过。) 一对一的实现:既可以把表A的主键充当表B的外键
  • Django数据库对多数据关系

    千次阅读 2017-10-10 19:39:35
    本文主要描述Django数据中一对一的数据关系,创建app等配置不再赘述。 Django操作数据库,使用ORM ORM:关系映射对象,把传统的SQL语句封装成了类和对象的形式,在操作表中的记录时,就像在操作类和对象一样。 ...
  • 关联映射:一对多/多对一 ...数据表间一对多关系如下图: 关联映射:一对一 一对一关系就如球队与球队所在地址之间的关系,一支球队仅有一个地址,而一个地址区也仅有一支球队。 数据表间一对一关系的表现
  • 数据库表中一对多关系怎么设计?

    千次阅读 2018-11-26 09:28:30
    (一对多:one-to-many) 1) teacher and student. (teacher表:两列id(主键),name。 pupil表:三列:id(主键),name,tid(外键)) 举例: Teacher "qixy" has two students: liyaohua,fuwenlong. Te...
  • 一个班级对应多个学生: 一对多 一个老师对应多个学生 多个学生对应一个老师:一对多 一个老师教一门课 一门课对应一个老师: 一对一 一对多(foreign key): 学生表要关联班级表,多个学生属于一个班级. 班级是被...
  • photo_favour(图片收藏关系表):photo_id user_id 假设这几个表都相当大,需要进行分表。我的分表规则是: user表按照id取模,这样user相关的表都可以按照这个取模后的结果来分表; photo表按照id取模,...
  • 求大神给点源码。给点提示!我百度了半天,都是个模板!HBase的高级查询怎么查的
  • 一个项目对应多个学生 一个学生对应多个项目(多对多关系) ...实现多对多关系,必须要第三表来操作,且它们都属于外键。...一个项目对应一个老师(一对多关系) 导师表 项目表
  • 关系数据库设计范式举例详解

    千次阅读 2010-08-12 18:10:00
    规范化   关系数据库的规范化理论最早是由关系数据库理论创始人E.F.Codd提出的,后来又经过了许多专家和学者其进行了深入的研究和发展完善,最后形成了一套关系数据库的设计理论。这套理论主要...
  • SQL Server学习记忆——数据库设计的技巧并举例(二)1前言这篇博文中对数据库关系模型,主键和外键,如何避免冗余进行了讲解,并用示例说明了数据库表的组成。
  • 网上购物系统前台的用户共分两类:类是注册用户(正式用户),这类用户有基本的信息,可以自己的信息进行查看与修改,可以随时实现网上购物。当用户在网站所购商品总金额达一定数量,可以根据所购商品总金额数量...
  • mysql 笔记 ...请问数据库在创建表的时候如何设计表关系,一对一,一对多,多对多 请高手举例说明。谢谢!!! https://zhidao.baidu.com/question/251111120.html 效果图 DDL CREATE TABL...
  • 如何设计关系数据库(模块划分能力以及对数据库的了解) 声明:以下内容均来自慕课网翔仔老师剑指office课程口述,经个人逐字逐句听入敲写而成,如果有问题的话请通知我删除,谢谢 数据库最主要的功能是...
  • 上面把多关系的CActiveRecord翻译了一通, 这里只是讲一些比较常用的选项,不会面面具到的讲所有的选项。具体的还要在开发中慢慢体会。 具体代码如下,注释中稍作注释,便于理解: 相关的数据库代码 # -----...
  • 数据库范式简析和举例

    万次阅读 2012-05-17 17:07:39
     数据库范式在数据库设计中的地位一直很暧昧,教科书中对于数据库范式倒是都给出了学术性的定义,但实际应用中范式的应用却不甚乐观,这篇文章会用简单的语言和一个简单的数据库DEMO将一个不符合范式的数据库一步步...
  • 举例说明数据库一、二、三及BCNF范式

    万次阅读 多人点赞 2012-07-14 21:27:44
    (转载:数据库的设计范式是数据库设计所需,之所以为原创,我觉得它很重要,和大家分享一下,有必要学习一下,于是转载以下这篇文章。希望对于读者有益,提高班的兄弟姐妹们别嫌太长了,耐心看一下吧,灰常有用滴)...
  • 数据库关系代数详解

    千次阅读 多人点赞 2021-02-26 16:35:55
    数据库关系代数 1. 关系代数的运算 1.1 传统的关系运算 传统的关系运算起源于数学的集合论,有下面几种: 笛卡尔积运算 差运算 交运算 并运算 1.2 专门的关系运算 选择 投影 连接 除运算 1.2.1 关系运算中的基础...
  • 2、一对多(多对一): 如,部门和员工,一个部门有多个员工,一个员工只能对应一个部门; 3、多对多: 如,学生和课程,一门课程可以被多个学生选择,一个学生可以选择多门课程; 2.2数据库设...
  • SQLite数据库基本操作(举例说明)

    千次阅读 2020-02-05 16:13:50
    SQLite数据库基本操作介绍在线安装命令分类系统命令(以‘.’开头)sql命令创建个学生管理系统数据库,需要 **学号、姓名、电话、地址** 等信息。然后创建一张表,然后查看:然后插入个学生信息:更新已有的数据:...
  • 关系数据库设计理论

    千次阅读 2018-07-11 18:32:27
    关系数据库设计理论 设计个好的关系数据库系统,关键是要设计个好的数据库模式(数据库...举例:为学校设计关系数据库 关系模式: UN(Sno,Cno,G,Sdept,MN) Sno:描述学生 Sdept:描述系名 MN:描述系...
  • 最近因为要做个带CMS的系统,需要把数据库理论重新学习遍,因此买了本数据库系统基础教程来看,这系列文章作为本次学习的个总结和概括。  1.1 数据库系统  数据库指由DBMS管理的数据和集合。  DBMS...
  • 关系数据库

    千次阅读 2013-06-19 17:40:10
    关系数据库 科技名词定义 中文名称:关系数据库英文名称:relational database 定义:按照关系模型建立的数据库。 应用学科:通信科技(级学科);服务与应用(二级学科) 以上内容由全国科学技术名词...
  • 数据库模糊匹配通配符的简单举例

    千次阅读 2018-01-11 20:50:37
    通配符可以替代个或个字符,即模糊查询。 SQL 通配符必须与 LIKE 运算符一起使用。在 SQL 中,可使用以下通配符如下: 1、% 替代个或个字符 2、_ 仅替代个字符 3、[charlist] 字符列中的任何...
  • 关系数据库基础及应用(

    千次阅读 2018-05-07 11:34:22
    数据库原理数据库简介1、DB和DBMS· 数据库(Database,...2、关系数据库的简介· 关系:描述两个元素间的关联或对应关系· 使用关系模型把数据组织到二维数据表(Table)中· 产品化:Oracle、DB2、Sybase、SQ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 173,576
精华内容 69,430
关键字:

数据库一对多关系举例