外键

11.25作业

孤街醉人 提交于 2019-12-05 15:35:33
orm 表关系如何建立 多对多:外键字段在任意一方都可以,建议建在查询频率高的表, 其外键关系需要建立第三张表来专门处理。 一对多:外键在多的那个表里 一对一:外键建议建在查询频率高的表 换位思考:先分析一张表 然后分析另一张表 创建表的时候,先创基表 再创建有外键的 本周大作业:图书管理系统 图书表 出版社表 作者表 from django.db import models # Create your models here. #先不考虑外键关系 先创建基表 class Book(models.Model): title=models.CharField(max_length=32) #小数共8位,小数点占两位 price=models.DecimalField(max_digits=8,decimal_places=2) #书跟出版社是一对多,并且书是多的一方 所以外键字段键在书表中 publish=models.ForeignKey(to='Publish') #to用来指代跟哪张表有关系 默认关联的是表的主键字段 ''' 一对多外键字段 创建的时候 同步到数据中 表字段会自动加_id后缀 如果你自己加了_id orm还是会再加一个_id 所以写外键字段的时候不用自己加_id ''' #书和作者是多对多关系 外键字段建在任意一方都可以 但是建议建在查询频率高的那一方

MYSQL外键(Foreign Key)的使用

醉酒当歌 提交于 2019-12-05 15:29:00
在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束。 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持); 2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立; 3.外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以; 外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作; 外键的定义语法: [CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...) REFERENCES tbl_name (index_col_name, ...) [ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}] [ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}] 该语法可以在 CREATE TABLE 和 ALTER TABLE 时使用,如果不指定CONSTRAINT symbol,MYSQL会自动生成一个名字。 ON

缓缓飘落的树叶像思念

限于喜欢 提交于 2019-12-05 15:28:50
今日内容 orm表关系如何建立 多对多 一对多 一对一 换位思考 先站在一张表上面分析 然后再站在另一张分析 本周大作业 图书管理系统 一对多 外键字段建在 多的那一方 多对多 多对多的外键关系需要建立第三章来专门处理 ​ 图书表 ​ 出版社表 ​ 作者表 from django.db import models # Create your models here. # 先不要考虑外键关系 先创基表 class Book(models.Model): title = models.CharField(max_length=32) # 小数总共八位 小数占两位 price = models.DecimalField(max_digits=8,decimal_places=2) # 书跟出版社是一对多 并且书是多的一方 所以外键字段健在书表中 publish_id = models.ForeignKey(to='Publish') # to用来指代跟哪张表有关系 默认关联的就是表的主键字段 """ 一对多外键字段 创建的时候 同步到数据中 表字段会自动加_id后缀 如果你自己加了_id 我orm头铁 再在后面加一个_id 所以你在写一对多外键字段的时候 不要自作聪明的加_id """ # 书跟作者是多对多的关系 外键字段建在任意一方都可以 但是建议你建在查询频率较高的那一方

drf的视图家族

大兔子大兔子 提交于 2019-12-05 15:24:00
一、昨日内容复习 """ 1、(重点)二次封装Response:自定义APIResponse继承Response,重写__init__方法 2、(正常)设置了abstract为True的模型类,称之为基表,这样的模型类是专门作为基类来提供公有属性的序列 3、(重点)ORM多表关联操作: 外键所放位置 一对多:外键放在多的一方 多对多:外键放在常用的一方 一对一:外键放在不常用的一方 外键字段为正向查询字段,related_name是反向查询字段 外键如何断关联 设置外键字段db_constraint=False 外键间的级联关系 一对一:作者没了,详情也没:on_delete=models.CASCADE 一对多:出版社没了,书还是那个出版社出版:on_delete=models.DO_NOTHING 一对多:部门没了,员工没有部门(空不能):null=True, on_delete=models.SET_NULL 一对多:部门没了,员工进入默认部门(默认值):default=0, on_delete=models.SET_DEFAULT 多对多:不能设置on_delete 4、(重点)连表序列化,在Model类中定义插拔序列化方法属性,完成连表查询 5、(正常)子序列化可以辅助快速实现自定义外键深度的序列化,但是不能进行反序化 6、(重点)单查群查接口,序列化类提供序列化对象

知识积累

随声附和 提交于 2019-12-05 15:08:17
目录 from表单上传 orm表格创建 伪静态: 虚拟环境: from表单上传 from 上传文件: --form表单上传文件 后端获取文件 注意: 1. method 为post 2.enctype -->from-date 3.用post 要在settings注释一个中间件csrf eg:<form action="" method="post" enctype="multipart/form-data"> def upload(request): # print(request.POST) """ django针对不同类型的数据 会帮你解析并放到不同的方法中供你调用 """ if request.method == "POST": print(request.FILES) # django会将文件类型的数据自动放入request.FILES里面 file_obj = request.FILES.get('myfile') # 文件对象 # print(file_obj) # print(file_obj.name) with open(file_obj.name,'wb') as f: for line in file_obj: f.write(line) return render(request,'upload.html') orm表格创建 orm 表关系: 多对多

第四阶段:DRF day80 DRF--DRF中的视图家族及工具视图类

一世执手 提交于 2019-12-05 15:04:37
目录 一、昨日内容复习 二、今日内容学习 三、今日练习 练习A 练习B 一、昨日内容复习 """ 1、(重点)二次封装Response:自定义APIResponse继承Response,重写__init__方法 2、(正常)设置了abstract为True的模型类,称之为基表,这样的模型类是专门作为基类来提供公有属性的序列 3、(重点)ORM多表关联操作: 外键所放位置 一对多:外键放在多的一方 多对多:外键放在常用的一方 一对一:外键放在不常用的一方 外键字段为正向查询字段,related_name是反向查询字段 外键如何断关联 设置外键字段db_constraint=False 外键间的级联关系 一对一:作者没了,详情也没:on_delete=models.CASCADE 一对多:出版社没了,书还是那个出版社出版:on_delete=models.DO_NOTHING 一对多:部门没了,员工没有部门(空不能):null=True, on_delete=models.SET_NULL 一对多:部门没了,员工进入默认部门(默认值):default=0, on_delete=models.SET_DEFAULT 多对多:不能设置on_delete 4、(重点)连表序列化,在Model类中定义插拔序列化方法属性,完成连表查询 5、(正常)子序列化可以辅助快速实现自定义外键深度的序列化

sqlserver 删除表 外键

拥有回忆 提交于 2019-12-05 13:54:55
Truncate table Menu --truncate不能对有外键的表 delete Menu delete RoleMenu SELECT * FROM sys.foreign_keys WHERE referenced_object_id=OBJECT_ID('Menu'); --找到引用该表主键的名称 ALTER TABLE dbo.RoleMenu DROP constraint FK_Menu_MenuId --删除外键 来源: https://www.cnblogs.com/enych/p/11926338.html

Django基础(四)----ORM、Admin的使用、单表查询中的双下划线、关系字段

£可爱£侵袭症+ 提交于 2019-12-05 12:57:34
ORM 用户增删改查 将用户保存到数据库。 (1)创建模型类,生成对应的数据库表格 在命令行下执行 a. 同步数据库 : python manage.py makemigrations b. 写入数据库: python manage.py migrate (2)将表单数据保存到数据库 格式: a. 类名.objects.create() b. 类实例化:obj=类(属性=XX) obj.save() 显示用户列表 语法: 类名.objects.all() 获取所有记录。 删除用户 (1)语法: ①类名.objects.get(xxx).delete() ②类名.objects.filter(xxx).delete() 修改用户 (1)语法: ①obj =类名.objects.get(‘xxx’) obj.zz = xx obj.save() ②类名.objects.filter(‘xxx’).update(‘xxxx’) Admin使用 进入自带Admin后台步骤: 创建超级用户 python manage.py createsuperuser 注册model类 访问 admin 管理页面 修改成中文 注意:ImageField()字段需要借助pillow模块才能使用,因此需要先下载pillow模块。 单表查询之神奇的双下划线 models.Tb1.objects.filter

MySQL学习笔记一

倾然丶 夕夏残阳落幕 提交于 2019-12-05 12:27:57
MySQL 学习笔记 一 一、数据库简单介绍 1、 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系统中,关系型数据库使用最为广泛。面向对象数据库则是由面向对象语言催生的新型数据库,目前的一些数据库系统,如:SQL Server 2005、Oracle10g等都开始增加面向对象的特性。 二、常用基本 SQL 语句 / 语法 Ø SQL 语句基础理论 SQL是操作和检索关系型数据库的标准语言,标准SQL语句可用于操作然后关系型数据库。 标准的 SQL 语句通常划分为以下类型: 查询语句: 主要由于select关键字完成,查询语句是SQL语句中最复杂,功能最丰富的语句。 DML (Data Munipulation Language,数据操作语言)语句,这组DML语句修改后数据将保持较好的一致性;操作表的语句,如插入、修改、删除等; DDL (Data Definition Language,数据定义语言)语句,操作数据对象的语言,有create、alter、drop。 DCL (Data Control Language,数据控制语言)语句,主要有grant、revoke语句。 事务控制语句: 主要有commit、rollback和savepoint三个关键字完成 DDL 语句

mysql使用语法

青春壹個敷衍的年華 提交于 2019-12-05 12:27:32
一、数据库简单介绍 1、 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系统中,关系型数据库使用最为广泛。面向对象数据库则是由面向对象语言催生的新型数据库,目前的一些数据库系统,如:SQL Server 2005、Oracle10g等都开始增加面向对象的特性。 二、常用基本SQL语句/语法 Ø SQL语句基础理论 SQL是操作和检索关系型数据库的标准语言,标准SQL语句可用于操作然后关系型数据库。 标准的SQL语句通常划分为以下类型: 查询语句: 主要由于select关键字完成,查询语句是SQL语句中最复杂,功能最丰富的语句。 DML (Data Munipulation Language,数据操作语言)语句,这组DML语句修改后数据将保持较好的一致性;操作表的语句,如插入、修改、删除等; DDL (Data Definition Language,数据定义语言)语句,操作数据对象的语言,有create、alter、drop。 DCL (Data Control Language,数据控制语言)语句,主要有grant、revoke语句。 事务控制语句: 主要有commit、rollback和savepoint三个关键字完成 DDL语句 DDL语句是操作数据库对象的语句