数据库设计-范式
范式是符合某一种级别的关系模式的集合。关系型数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。
目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、Boyce-Codd 范式(BCNF)、第四范式(4NF)和第五范式(5NF)。
范式越高,冗余最低,一般到三范式即可,再往上,表越多,可能导致查询效率下降。所以有时为了提高运行效率,可以让数据冗余
范式是符合某一种级别的关系模式的集合。关系型数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。
目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、Boyce-Codd 范式(BCNF)、第四范式(4NF)和第五范式(5NF)。
范式越高,冗余最低,一般到三范式即可,再往上,表越多,可能导致查询效率下降。所以有时为了提高运行效率,可以让数据冗余
Git 提交的过程中突然显示 Another git process semms to be running in this repository, e.g. an editor opened by ‘git commit’. Please make sure all processes are terminated then try again. If it still fails, a git process remove the file manually to continue…
即是 git 被另外一个程序占用。
原因在于 Git 在使用过程中遭遇了奔溃,部分被上锁资源没有被释放导致的。
解决方案:进入项目文件夹下的 .git 文件中(显示隐藏文件夹或 rm .git/index.lock)删除 index.lock 文件即可。
使用谷歌浏览器下载文件时发生浏览器崩溃,页面提示:
ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION
加载的资源名含有半角逗号(,)或者别的特殊符号
JavaScript 的对象(Object)和 Map,本质上是键值对的集合(Hash 结构)
ES6 中 Map 相对于 Object 对象有几个区别:
Map 转为对象:
公司线上的 MySQL 数据库每半年都需要删除大量的无效数据,只保留部分数据,因为历史遗留问题有几个表需要清理二三亿条数据,少的也有几千万,任务非常艰巨。
JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。
在使用 koa 开发的过程中,经常会忘记把 controller 的方法加到 router 中去,期望使用 decorator 实现路由配置及一些参数校验。
随着 ES6 里引入了类,目前 ECMAScript 有一个提案,引入了装饰器(Decorator)函数来标注极或修改类及其成员。
装饰器是一种特殊类型的声明,它能够被附加到类声明,方法, 访问符,属性或参数上。 装饰器使用 @expression 这种形式,expression 求值后必须为一个函数,它会在运行时被调用,被装饰的声明信息做为参数传入。
关于装饰器的详细介绍请参阮一峰的《ECMAScript 6 入门》一书