摘要: 一、多对多 1、如何确定多对多关系 ​ 例如 老师表 和 学生表 ​ 套路一样 先站在老师表 在站在学生表 ​ 老师表角度: 一个老师可以对应多个学生 一对多 ​ 学生表角度: 一个学生可以对应多个老师 一对多 ​ 如果双方都是一对多的关系 那么 两者是多对多关系 2、处理方式 ​ 建立一个中间表, 阅读全文
posted @ 2019-07-12 17:22 emos 阅读(6814) 评论(0) 推荐(0) 编辑
摘要: 表之间的关系 foreign key 外键约束,用于指向另一个表的主键字段 foreign key 带来的约束作用: 1.在从表中插入一条记录,关联了一个主表中不存在的id 导致插入失败 必须保证部门id (外键的值) 必须是在主表中存在的 2.插入数据的顺序 ​ 先插入主表记录 在插入从表记录 3 阅读全文
posted @ 2019-07-12 17:17 emos 阅读(3240) 评论(0) 推荐(0) 编辑
摘要: 约束 什么是约束 constraint ​ 约束就是一种限制,例如宪法,让你不能做某些事情 ​ 数据库的约束,是对数据的安全性,完整性的保证; mysql中的约束 1、unique 唯一性约束,表示这个字段不能出现重复的值, 用于唯一标识一条记录 例如身份证号码,学号等 2、not null 非空约 阅读全文
posted @ 2019-07-12 17:07 emos 阅读(152) 评论(0) 推荐(0) 编辑
摘要: mysql中的数据类型 1.整数 ​ tinyint 1个字节 无符号的8bit 最大255 有符号7个bit 127 128 ​ smallint 2个 ​ mediumint 3个 ​ int 4个 最常用 如果你的数据超过10位 用bigint ​ bigint 8个 注意:1.默认情况整数是 阅读全文
posted @ 2019-07-12 17:03 emos 阅读(248) 评论(0) 推荐(0) 编辑
摘要: poll 和 epoll poll只是简单对select进行了优化,但是还不够完美 ,epoll才是最后的解决方案 注意:epoll仅能在linux中使用 案例: epoll 如何解决select的两个问题 1.epoll 把对于等待队列的操作 与阻塞进程分开了 2.epoll 自己维护了一个等待队 阅读全文
posted @ 2019-07-12 17:00 emos 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 多路复用IO模型 属于事件驱动模型 多个socket使用同一套处理逻辑 如果将非阻塞IO 比喻是点餐的话,相当于你每次去前台,照着菜单挨个问个遍 多路复用,直接为前台那些菜做好了,前台会给你返回一个列表,里面就是已经做好的菜 对比阻塞或非阻塞模型,增加了一个select,来帮我们检测socket的状 阅读全文
posted @ 2019-07-12 16:54 emos 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 线程间状态同步 你把一个任务丢到了子线程中, 这个任务将异步执行 ,如何获取到这个任务的执行状态 执行状态 执行结果不是一个概念 如果需要拿到 执行结果 可以采用异步回调 假设 一个线程 负责启动服务器 启动服务器需要花一定的时间 另一个线程作为客户端 要连接服务器 必须保证服务器已经启动 要获取状 阅读全文
posted @ 2019-07-12 16:48 emos 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 一、线程池与进程池 池表示容器 线程就是装线程的容器 为什么要装到容器中 1. 可以避免频繁的创建和销毁(进程/线程)来的资源开销 2. 可以限制同时存在的线程数量 以保证服务器不会应为资源不足而导致崩溃 3. 帮我们管理了线程的生命周期 4. 管理了任务的分配 如果进程不结束 池子里面的进程或线程 阅读全文
posted @ 2019-07-12 16:43 emos 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 我扩展了Django用户模型,如dev文档中所描述的那样。我不想保留大多数原始的用户模型特性,所以我扩展了抽象用户类。我在setings.py中定义了: 我的用户类: 一切看起来都很好,但是当我试图让它由管理站点管理时: 我在ADMIN CustomUser Creation页面(在验证密码确认表单 阅读全文
posted @ 2019-07-12 16:22 emos 阅读(2176) 评论(0) 推荐(0) 编辑