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 $ ...
随机推荐
- UITableView属性 自己定义UITableViewCell
UITableView的属性全齐.供大家參考 附:http://www.bubuko.com/infodetail-561085.html //曾经在使用UITableView的时候,总是在cell上 ...
- h5-弹出层layer,提示,顶部横条,
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYkAAAI7CAIAAACWVfAJAAAgAElEQVR4nOy9f1ATWb733z3uOA4kIC ...
- 0x37 容斥原理与莫比乌斯函数
多重集的组合数公式得记下.cf451E就是这个的裸题 #include<cstdio> #include<iostream> #include<cstring> # ...
- 信息安全-加密:MD5
ylbtech-信息安全-加密:MD5 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值( ...
- luogu 3952 时间复杂度(模拟)
时间复杂度 这道题从两个月前开始做,一直没做出来,最后今晚决心一定要做出来.于是开始认真的在打草纸上写思路,最后在AC的那一刻,差点哭了出来!! 题目大意 这个自己看吧,noip2017的D1T2 s ...
- webform 下使用autofac
官网介绍: http://docs.autofac.org/en/latest/integration/webforms.html#quick-start HTTP 错误 500.22 - Inter ...
- Centos下MongoDB数据库的安装以及配置开机自启动(三)
最近写了一个用node来操作MongoDB完成增.删.改.查.排序.分页功能的示例,并且已经放在了服务器上地址:http://39.105.32.180:3333. 在服务器上完全可以用yum来安装管 ...
- Spark的数据存储(十九)
Spark本身是基于内存计算的架构,数据的存储也主要分为内存和磁盘两个路径.Spark本身则根据存储位置.是否可序列化和副本数目这几个要素将数据存储分为多种存储级别.此外还可选择使用Tachyon来管 ...
- vue2.0中关于active-class
一.首先,active-class是什么, active-class是vue-router模块的router-link组件中的属性,用来做选中样式的切换: 相关可查阅文档:https://router ...
- DataTables入门
转载 https://blog.csdn.net/gfd54gd5f46/article/details/65938189