m_Orchestrate learning system---十四、数据表中字段命名规则
m_Orchestrate learning system---十四、数据表中字段命名规则
一、总结
一句话总结:a、保证唯一
b、见名知意
1、注意php中的数组类函数和字符串类函数的前缀?
数组类函数的前缀是 array_,而不是arr_,例如 array_merge()函数,
字符串类函数的前缀是str_,而不是string_,例如str_replace()函数
原因应该是string太长了,不便于做前缀,而array的话刚好可以做前缀,故不用缩写
2、str_replace()函数如何使用?
str_replace()函数有点意识,前两个参数都可以是数组
说明整个php函数体系对数组的支持还是比较好的
1 <?php
2 // 替换顺序
3 $str = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
4 $order = array("\r\n", "\n", "\r");
5 $replace = '<br />';
6
7 // 首先替换 \r\n 字符,因此它们不会被两次转换
8 $newstr = str_replace($order, $replace, $str);
9
10 // 输出 F ,因为 A 被 B 替换,B 又被 C 替换,以此类推...
11 // 由于从左到右依次替换,最终 E 被 F 替换
12 $search = array('A', 'B', 'C', 'D', 'E');
13 $replace = array('B', 'C', 'D', 'E', 'F');
14 $subject = 'A';
15 echo str_replace($search, $replace, $subject);
16
17 // 输出: apearpearle pear
18 // 由于上面提到的原因
19 $letters = array('a', 'p');
20 $fruit = array('apple', 'pear');
21 $text = 'a p';
22 $output = str_replace($letters, $fruit, $text);
23 echo $output;
24 ?>
1、str_replace()的常用参数:
如果 search 和 replace 为数组,那么 str_replace() 将对 subject 做二者的映射替换。如果 replace 的值的个数少于 search 的个数,多余的替换将使用空字符串来进行。如果 search 是一个数组而 replace 是一个字符串,那么 search 中每个元素的替换将始终使用这个字符串。该转换不会改变大小写。
如果 search 和 replace 都是数组,它们的值将会被依次处理。
search-
查找的目标值,也就是 needle。一个数组可以指定多个目标。
replace-
search的替换值。一个数组可以被用来指定多重替换。 subject-
执行替换的数组或者字符串。也就是 haystack。
如果
subject是一个数组,替换操作将遍历整个subject,返回值也将是一个数组。 count-
如果被指定,它的值将被设置为替换发生的次数。
2、常用三个参数,顺序依次为:search,replace,subject(全文)
3、subject在最后面,说明php的开发者倾向把函数中的全文放在后面
4、肯定要先找到才能替换,故search肯定在replace前面
3、thinkphp中where如何使用?
1 Db::table('think_user')
2 ->where('id','>',1)
3 ->where('name','thinkphp')
4 ->select();
1、where还是用的键值对的形势,事实上thinkphp里面有太多都是键值对的形势了
2、因为比较有符号的问题,那么符号肯定在键值对中间
3、数字是不用加引号的,其它一律单引号
4、where支持数组,还是那种键值对的形式
4、数据表如何命名,数据表中字段如何命名?
数据表中表字段加上表名的一个字母
比如group表,那么所有字段前面都加上一个g,比如gname
这样做在多个表join查询的时候会很方便,不然就是下面的效果
$data=db('group')->alias('g')->join('user u','u.id=g.tid')->field('u.picture as pic1,g.picture,username,g.name,g.id,g.slogan,g.description,g.time,g.tid,g.snumber')->where('tid',$id)->paginate(3);
这样太麻烦和浪费时间了
给表中字段加上表名的一个字母
还能少写很多代码
还能避免很多错误,比如:

总原则,尽量保证每一个东西的唯一性,尽量保证每一个字段的唯一性
二、内容在总结中
m_Orchestrate learning system---十四、数据表中字段命名规则的更多相关文章
- m_Orchestrate learning system---三十四、使用重定义了$的插件的时候最容易出现的问题是什么
m_Orchestrate learning system---三十四.使用重定义了$的插件的时候最容易出现的问题是什么 一.总结 一句话总结:如下面这段代码,定义了$的值,还是会习惯性的把$当成jQ ...
- m_Orchestrate learning system---二十四、thinkphp里面的ajax如何使用
m_Orchestrate learning system---二十四.thinkphp里面的ajax如何使用 一.总结 一句话总结:其实ajax非常简单:前台要做的事情就是发送ajax请求过来,后台 ...
- SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int
--SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int --关键说明:--1.从系统表syscolumns中的查询所有xtype='48'的记录得到类型为[tinyint]的字段- ...
- 批量替换数据库中所有用户数据表中字段数据类型为char和varchar到nvarchar的脚本
解决问题:字段类型为char的总是占用指定字节长度(末尾好多空白符号),varchar数据类型长度一个汉字占2个字节,内容存储为中文的字段个人建议全部使用nvarchar. 操作说明:打开SQL Se ...
- laravel 字段映射问题,表单中提交字段与数据表中字段不一致
在遇到提交表单时,表单中的name属性与数据表中的字段不一致,报错, 解决方法: 参考1:提交表单的时候,表单的name属性和数据表字段名称是一样的,这样有什么不妥么? 你数据库的信息给前端透露得越多 ...
- 在数据表中字段存有excel、word文件数据,让其随着记录指针移动而改变显示
这是一个及其简单的问题,可是被绕住了.当记录移动时,装载数据到excel显示数据.这个方法写在哪里?如何触发? datasource.cds等空间的触发都是多次.到现在也没明白如何去做.笨方法: 1. ...
- android 检测sqlite数据表中字段(列)是否存在 (转)
原文摘自 http://www.tuicool.com/articles/jmmMnu 一般数据库升级时,需要检测表中是否已存在相应字段(列),因为列名重复会报错.方法有很多,下面列举2种常见的方式: ...
- Linux下修改MySQL数据表中字段属性
一.修改某个表的字段类型及指定为空或非空 alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空]; alter table 表名称 modify 字段名称 字段类 ...
- php base64_encode,serialize对于存入数据表中字段的数据处理方案
A better way to save to Database $toDatabse = base64_encode(serialize($data)); // Save to database $ ...
随机推荐
- mysqli简介
mysqli简介 PHP MySQLi 简介 PHP MySQLi = PHP MySQL Improved! MySQLi 函数允许您访问 MySQL 数据库服务器. 注释:MySQLi 扩展被设计 ...
- maven 项目加载本地JAR
将jar安装到本地的maven仓库 1.首先确定本地有maven环境. 2.安装本地jar 模板: mvn install:install-file -Dfile=<path-to-file& ...
- 在js在添版本号
为了增加用户访问网站体验,快速打开网页,许多网站都对不常更新的js,css文件在浏览器端设置了缓存.但如果在服务器端做了更新,浏览器使用的仍是缓存在本地的js文件,除非强制清缓存(ctrl+F5).为 ...
- Linux top命令简解
简介: top 命令是最流行的性能监视工具之一,它是一个优秀的交互式工具,用于监视性能.它提供系统整体性能,但报告进程信息才是 top 命令的长处. top 界面分为两个部份,光标上面部份显示关于系统 ...
- css盒模型:BFC、IFC边距重叠解决方案
BFC:块级格式化上下文 IFC:行内格式化上下文 实例如下: <div class="out" style="background: red;"> ...
- visio中如何取消跨线和去掉页边距
比较来说,写论文visio和inkscape都不可缺少. 比如visio跨线的问题,已经遇到过两次忘记了.这次截个图作为记录.其实就是在“设计”一栏里,把连接线里面的跨线显示的对勾去掉即可. *** ...
- ATL and MFC String Conversion Macros
ATL 7.0介绍了一些新的转换类和宏,为现有的宏提供了重要的改进.新的字符串转换类和名称宏的形式是:C 源类型 2[C] 目标类型[EX]其中:•源类型和目标类型描述如下表.• [C]是目标类型必须 ...
- 【摘录】JAVA内存管理-JVM垃圾收集机制
很多公司都有自己的JVM实现,被Oracle收购的sun公司开发的JVM实现名为HotSpot.这一实现是我们最常用到的. 还有哪些JVM实现呢?比较有名的有Oracle之前收购的BEA公司(就是以前 ...
- Reflection (computer programming) -反射-自身结构信息
n computer science, reflection is the ability of a computer program to examine, introspect, and modi ...
- Java并发--线程安全策略
1 不可变对象 用不可变对象保证线程安全,是相当于不让线程并发,逃避了并发. 不可变对象就是指一个类的实例化对象不可变.比如String类的实例 主要方法有: 将类声明为final 将所有成员声明为 ...