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

    千次阅读 2017-10-10 19:39:35
    本文主要描述Django数据中一对一的数据关系,创建app等配置不再赘述。 Django操作数据库,使用ORM ORM:关系映射对象,把传统的SQL语句封装成了类和对象的形式,在操作表中的记录时,就像在操作类和对象一样。 ...

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

    Django操作数据库,使用ORM

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

    使用默认数据库:sqlite

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

    多对多关系

    举例:一个出版社发表多个文章,一篇文章也可以对多个出版社发表

    ManyToManyFiled():关联两个表的函数,但是函数的设置位置,在模型中任选一个即可,不能在两个模型中都设置此函数。

    class Publication(models.Model):
        id = models.AutoField(primary_key=True)
        title = models.CharField(max_length=30, null=True)  # 出版社名称
    
        class Meta:
            db_table = 'Publication'
    
        def __unicode__(self):
            return 'Publication-Name: %s' % self.title
    
    
    class Article(models.Model):
        id = models.AutoField(primary_key=True)
        headline = models.CharField(max_length=100, null=True)
    
        # 让文章关联出版社
        publication = models.ManyToManyField(Publication)
    
        class Meta:
            db_table = 'Article'
    
        def __unicode__(self):
            return 'Article-Name: %s' % self.headline
    
    
    创建完数据库模型之后,就需要创建数据库变更文件,应用数据库变更文件创建表的操作。
    创建数据库变更文件:python manage.py makemigrations
    应用数据库变更文件:python manage.py migrate
    可以使用SQLite可视化工具查看已经建立成功的数据库表
    
    由于未进行其他配置,所以只能在shell环境下,对数据库进行操作。
    进入shell环境的命令:python manage.py shell

    注意点:

    1)注意ManyToManyField()的设置位置;该实例中设置了Article模型中,在绑定两张表的时候,利用Article的对象a1进行绑定的,a1.publication.add()。但是不能使用Publication的对象p1进行绑定(p1.article.add())。

    两张表之间的相互查询关系

    查询a1这篇文章所属的出版社有哪些

    print a1.publication.all()

    查询某一出版社,所包含的所有文章有哪些

    print p1.article_set.all()


    展开全文
  • (一对多:one-to-many) 1) teacher and student. (teacher表:两列id(主键),name。 pupil表:三列:id(主键),name,tid(外键)) 举例: Teacher "qixy" has two students: liyaohua,fuwenlong. Teacher ...

    Database Design(数据库设计)


    马克-to-win:

    (一对多:one-to-many)

    1) teacher and student.

    (teacher表:两列id(主键),name。
    pupil表: 三列:id(主键),name,tid(外键))

     

    举例: Teacher "qixy" has two students: liyaohua,fuwenlong. Teacher "huanglaosh" has two students: mashuai,jiaxiaohu.

    create table pupil(id int not null,name char(10),tid int);

    create table teacher(id int not null,name char(10));

    INSERT INTO pupil (id,name,tid) VALUES(1,'liyaohua',1);
    INSERT INTO pupil (id,name,tid) VALUES(2,'fuwenlong',1);
    INSERT INTO pupil (id,name,tid) VALUES(3,'mashuai',2);
    INSERT INTO pupil (id,name,tid) VALUES(4,'jiaxiaohu',2);

    INSERT INTO teacher (id,name) VALUES(1,'qixy');
    INSERT INTO teacher (id,name) VALUES(2,'huanglaosh');

    select * from pupil,teacher where tid=teacher.id and teacher.name='qixy';

    +----+-----------+------+----+------+
    | id | name      | tid  | id | name |
    +----+-----------+------+----+------+
    |  1 | liyaohua  |    1 |  1 | qixy |
    |  2 | fuwenlong |    1 |  1 | qixy |
    +----+-----------+------+----+------+

     

    更多请看下节:

    http://www.mark-to-win.com/tutorial/mydb_DBIntroduction_DesignOneMany.html

    展开全文
  • 一对关系 举例:部门和员工的对应关系 : 1. 正过来看,(“1”)一个部门里面可以有多个员工(“n”) 2. 反过来看一一对应:而一个员工只能对应一个部门 由于满足上面两条, 所以一对关系成立, 部门是1 员工是n 策略...

    一对多关系

    举例:部门和员工的对应关系 :

    1. 正过来看,(“1”)一个部门里面可以有多个员工(“n”)
    2. 反过来看一一对应:而一个员工只能对应一个部门

    由于满足上面两条, 所以一对多关系成立, 部门是1 员工是n
    策略: 在多的一方添加外键, 指向一的一方的主键。

    如何在数据库中操作?请看:在MySQL中添加外键的几种方式(一对多关系)

    多对多关系

    举例:教师与学生

    1. 正过来看,(“1”)一个老师能教多名学生(“n”)
    2. 反过来看, (“1”)一个学生有多个老师(“n”)

    策略:增加一张表,专门维护两张表之间的关系。

    增加中间表之后:中间表与教师表形成了一对多的关系,而且中间表维护了唯一对应的找到表中数据的关系。

    同样的学生表与中间表也是一个一对多的关系。一对多的关系可以匹配到关联表中的数据。

    如何在数据库中操作?请看:在MySQL中建立多对多关系的映射(建立中间表)

    总结

    总结, 判断一对多还是多对一, 主要取决于反过来看(也就是第二条)

    • 正反均是一对一 : 一对一
    • 正是一对多,反是一对一 : 一对多
    • 正是一对一,反是一对多 : 多对一(这一条和一对多本质上是一类,只不过是反过来理解罢了)
    • 正反均是一对多 : 多对多
    展开全文
  • 一对一关系就如球队与球队所在地址的关系,一支球队只有一个地址,一个地址对应一个球队。 3、多对多关系 常见的是学校中班级与老师之间的关系,一个班级有多个老师上课,而每个老师又给多个班级上...

    1、关系映射:一对多

    一个对应多个,多个对应一个。

    举例:从球队角度:在球场上一个球队拥有多名足球运动员,

       从球员角度:多个球员属于一个球队

    如上 即为多对一的关系

     

    2、一对一

    一对一的关系就如球队与球队所在地址的关系,一支球队只有一个地址,一个地址对应一个球队。

     

    3、多对多关系

    常见的是学校中班级与老师之间的关系,一个班级有多个老师上课,而每个老师又给多个班级上课,

    在多对多中需要采用第三张表的方式,这样将多对多转换成两个一对多。

     

    转载于:https://www.cnblogs.com/bravexz/p/5417595.html

    展开全文
  • 关系数据库设计范式举例详解

    千次阅读 2010-08-12 18:10:00
    规范化   关系数据库的规范化理论最早是由关系数据库理论创始人E.F.Codd提出的,后来又经过了许多专家和学者其进行了深入的研究和发展完善,最后形成了一套关系数据库的设计理论。这套理论主要...
  • 网上购物系统前台的用户共分两类:类是注册用户(正式用户),这类用户有基本的信息,可以自己的信息进行查看与修改,可以随时实现网上购物。当用户在网站所购商品总金额达一定数量,可以根据所购商品总金额数量...
  • 范式二消除了数据库中的部份依赖关系,所有实体属性必须完全依赖主关键字,这个主关键字必须个条目都是唯一的,例如学号、身份证这类。 看这个表,如果个叫张的人来了,你得问它年龄和语言两个属性才能确定...
  • mysql 笔记 ...请问数据库在创建表的时候如何设计表关系一对一,一对多,多对多 请高手举例说明。谢谢!!! https://zhidao.baidu.com/question/251111120.html 效果图 DDL CREATE TABL...
  • 第二类是扩充的关系操作:投影(对关系的垂直分割)、选择(对关系的水平分割)、连接和自然连接(关系的结合)。  五个基本操作:  举例说明:  两个关系如下:  并:  差:  ...
  • N: 1 多对一关系 分析例子1 : 一位学生对应多个成绩,举例,学号10001的学生在成绩表有多个成绩(语文,数学......),既成立1对多关系; 分析例子2 : 一个学生 可选择多个课程,一个课程有多个学生组成,既成立多对的关系;...
  • 在之前的 Entity Framework 快速上手介绍 之中,两个实体之间只是简单的一对一关系,而在实际的应用场景中,还会出现多对多关系,同时还有可能会出现多对多关系还附带有其他字段的情况。 下面以几个例子,对表间多对...
  • NoSql数据库四大分类:键值(Key-Value)存储数据库数据库主要会使用到个哈希表,这个表中有个特定的键和个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只部分...
  • NewSQL 是各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性。 目录 1历史 ▪ NewSQL词的提出 ▪ 发展趋势 ▪ 现有NewSQL系统...
  • 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。 如下面的示意图所示(通过二叉树举例...
  • 关系数据库设计规范化流程

    千次阅读 2011-09-15 14:59:42
    数据库表结构的设计关系到:数据库的存储效率、数据完整性、可扩展性及冗余数据。   规范化:确保数据正确地分布到数据库的表中,防止操作异常及大量冗余信息的存储。数据冗余不仅占用物理空间,数据的维护和...
  • 在任何关系数据库中,第范式(1NF)是对关系模式的基本要求,不满足第范式(1NF)的数据库就不是关系数据库。 例如,这样是符合的:student(id,name,age,class) 而这样就不符合:student(id,...
  • 形式化定义、关系操作、关系的完整性、常用术语、三级模式结构以及模式之间顺序与转换的应用举例等,来逐步了解它,并对关系数据库个初印象! 文章目录关系数据库中重要且实用的知识点小结前言关系型...
  • 数据库的设计 1. 多表之间的关系(三种) 1)分类和实现关系:(红色部分重要) 关系 举例 建表原则 ... 人和身份证分析:一个... 一对一关系实现,可以在任意一方添加唯一外键指向另一方的主键。 ...
  • 目录序导语正文(1)一对一(2)一对多(3)多对多附 序 三种对象关系映射ObjectRelationshipMapping JDBC(数据库操作) student t_student studentId t_id Mybatis(半自动的ORM) Teacher XML/@ ...
  • mybatis级联之一对多的关系

    千次阅读 2017-07-11 15:24:10
    mybatis多对一的级联,这里举例班级和学生的例子,一个班级有多个学生,属于一对多的关系,一个学生只属于一个班级,属于多对一关系。 建立数据库文件CREATE TABLE f_class( c_id INT PRIMARY KEY AUTO_INCREMENT...
  • 1.一对多的映射关系的建立 ...首先来讲,表与表之间可以存在一对一,一对多,多对多的关系,其中1~N, M~N关系举例说明可以用如下的图进行表示: 图示的这两种关系并不难理解,而如何在Hiberna...
  • 数据表之间的关联关系分为三种:一对一、一对多、多对多。下面就逐一介绍下: 1. 一对一 Ø 一对一是将数据表“垂直切分”,其实是不常见,或不常用的。也就是 A 表的一条记录对应 B 表的一条记录,为什么要这样的...
  • 数据库中,可以通过添加外键的方式实现一对多的关系。Java程序中则可以通过集合的方式实现。 举例:一个班级可以有多个学生,这就是一个一对多的关系,那么在一个学生表中,就可以将“班级”这个字段设置为外键。 ...
  • 二、一对一单向关系举例(annotation 方式)。 例如:husband和wife两个表,都有id和name字段。 在数据库的设计上,应为:wife作为主表,husband作为子表,husband表中需要加入wife表的wifeid字段。 在类的设计上,
  • 关系数据库查询优化分析

    千次阅读 2008-01-07 12:52:00
    0 引言从大多数的实例中来...举例来说,如果数据库表信息积累到上百万甚至是上千万条记录,全表扫描次需要数十分钟,甚至数小时;但如果采用比全表扫描更好的查询策略,往往可以使查询时间降为几分钟,由此可见查
  • 但是很多人还是把它当做关系数据库在使用,用原来关系数据库的思维建表、存储、查询。本文以hbase举例讲述数据模式的变化。 传统关系数据库(mysql,oracle)数据存储方式主要如下: 图 上图是个很典型的数据...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 338
精华内容 135
关键字:

数据库一对一关系举例