数据库设计三大范式

范式是什么规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。什么是三大范式:第一范式:当关系模式 R 的所有属性都不能在分解为更基本的数据单位时,称 R 是满足第一范式的,简记为 1NF。满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了。第二范式:如果关系模式 R 满足第一范式,并且 R 得所有非主属性都完全依赖于 R 的每一个候选关

select for update 是属于排他锁,也属于悲观锁 (转)

1、InnoDB 行锁是通过给索引上的索引项加锁来实现的,只有通过索引条件检索数据,InnoDB 才使用行级锁,否则,InnoDB 将使用表锁。2、由于 MySQL 的行锁是针对索引加的锁,不是针对记录加的锁,所以虽然是访问不同行的记录,但是如果是使用相同的索引键,是会出现锁冲突的。应用设计的时候要注意这一点。3、当表有多个索引的时候,不同的事务可以使用不同的索引锁定不同的行,另外,不论是使用主键索引、唯一索

deepin 执行 sudu 不需要密码设置介绍

介绍作为一款 linxu 桌面系统,deepin 还是挺符合开发需求的,但因为 linxu 系统中权限问题,大部分命令都得加上 sudo 执行,一次两次还好,但用多了就不胜其烦,下面就来介绍如何修改 sudoers 文件达到使用 sudo 不需要密码的效果。前言如何修改 sudoers?直接修改/etc/sudoers 么?不,最好不要这样,这样会因为格式不正确而导致修改不生效,最好是使用 visudo 来进行编辑下面将开始修改

Github 的 Restful HTTP API 设计分解

什么是 RESTfulRESTful 是一种软件设计风格,由 RoyFielding 在他的论文中提出,全称为 RepresentationalStateTransfer,直译为表现层状态转移,或许可以解释为用 URL 定位资源,用 HTTP 动词描述操作,不用太纠结于定义,接下来我们会详细讨论。RESTful 风格的接口,目前来看,实现的最好的就是 GithubAPI,经常被效仿。接下来我们通过分析 GithubAPI 来

Jetbrains 系列产品 2019.2.2 最新激活方法

大家熟知 Jetbrains 的话应该知道:他们家的所有产品升级到 2018.2.1 及以上版本后,先前可用的注册服务器都失效了,无法激活升级到最新版本体验最新黑科技。这次要送的这份礼就是:Jetbrains 全系列产品 2019.2.2 及以下版本(理论上适用于目前所有新老版本)最新注册服务器(LicenseServer)的破解,可使用它来激活你手头上的 JetbrainsIDE,具体支持产品和版本见下文的列表。

PHP 伪异步实现 通过 CURL 实现 PHP 异步

介绍一种 PHP 通过 curl 实现异步处理的方式,目前应用在我的项目中,使用之前需要安装 php_curl 扩展因为 curl 请求的接口是同一个项目里面的,所以用这种方式比较方便,curl_setopt($ch,CURLOPT_TIMEOUT,1);将 curl 超时时间设置为 1s 介绍一种 PHP 通过 curl 实现异步处理的方式,目前应用在我的项目中,使用之前需要安装 php_curl 扩展因为 curl 请求的接口是同一个

php 多进程读写同一个文件锁的问题及 flock 详解

一、协同锁(advisorylock)和强制锁(mandatorylock)1、协同锁协同锁要求参与操作的进程之间协同合作。假设进程“A”获得一个 WRITE 锁,并开始向文件中写入内容;此时,进程“B”并没有试图获取一个锁,它仍然可以打开文件并向文件中写入内容。在此过程中,进程“B”就是一个非合作进程。如果进程“B”试图获取一个锁,那么整个过程就是一个合作的过程,从而可以保证操作的“序列化”。只有当参