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---十四、数据表中字段命名规则的更多相关文章

  1. m_Orchestrate learning system---三十四、使用重定义了$的插件的时候最容易出现的问题是什么

    m_Orchestrate learning system---三十四.使用重定义了$的插件的时候最容易出现的问题是什么 一.总结 一句话总结:如下面这段代码,定义了$的值,还是会习惯性的把$当成jQ ...

  2. m_Orchestrate learning system---二十四、thinkphp里面的ajax如何使用

    m_Orchestrate learning system---二十四.thinkphp里面的ajax如何使用 一.总结 一句话总结:其实ajax非常简单:前台要做的事情就是发送ajax请求过来,后台 ...

  3. SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int

    --SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int --关键说明:--1.从系统表syscolumns中的查询所有xtype='48'的记录得到类型为[tinyint]的字段- ...

  4. 批量替换数据库中所有用户数据表中字段数据类型为char和varchar到nvarchar的脚本

    解决问题:字段类型为char的总是占用指定字节长度(末尾好多空白符号),varchar数据类型长度一个汉字占2个字节,内容存储为中文的字段个人建议全部使用nvarchar. 操作说明:打开SQL Se ...

  5. laravel 字段映射问题,表单中提交字段与数据表中字段不一致

    在遇到提交表单时,表单中的name属性与数据表中的字段不一致,报错, 解决方法: 参考1:提交表单的时候,表单的name属性和数据表字段名称是一样的,这样有什么不妥么? 你数据库的信息给前端透露得越多 ...

  6. 在数据表中字段存有excel、word文件数据,让其随着记录指针移动而改变显示

    这是一个及其简单的问题,可是被绕住了.当记录移动时,装载数据到excel显示数据.这个方法写在哪里?如何触发? datasource.cds等空间的触发都是多次.到现在也没明白如何去做.笨方法: 1. ...

  7. android 检测sqlite数据表中字段(列)是否存在 (转)

    原文摘自 http://www.tuicool.com/articles/jmmMnu 一般数据库升级时,需要检测表中是否已存在相应字段(列),因为列名重复会报错.方法有很多,下面列举2种常见的方式: ...

  8. Linux下修改MySQL数据表中字段属性

    一.修改某个表的字段类型及指定为空或非空 alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空]; alter table 表名称 modify 字段名称 字段类 ...

  9. php base64_encode,serialize对于存入数据表中字段的数据处理方案

    A better way to save to Database $toDatabse = base64_encode(serialize($data)); // Save to database $ ...

随机推荐

  1. When Cyber Security Meets Machine Learning 机器学习 安全分析 对于安全领域的总结很有用 看未来演进方向

    链接:http://ucys.ugr.es/jnic2016/docs/MachineLearning_LiorRokachJNIC2016.pdf https://people.eecs.berke ...

  2. Python笔记(六)

    # -*-coding:utf-8-*- # 模块 # 模块是一个Python文件,以.py结尾,能让你有逻辑的组织Python代码 # 可以通过import引入模块 import Course_5 ...

  3. Android Studio 插件 GsonFormat :你还在烦恼 为 Json格式 生成 JavaBean实体类吗?

    在网络层,互联网提供所有应用程序都要使用的两种类型的服务,尽管目前理解这些服务的细节并不重要,但在所有TCP/IP概述中,都不能忽略他们: 无连接分组交付服务(Connectionless Packe ...

  4. VSCode新建vue文件自定义模板

    在一个Vue的项目中,反复的新建.vue文件是一个必不可少的工序.本着科技让人偷懒的原则,我们可以利用VSCode的snippet在.vue文件创建后能轻松地生成一套模板. 整个过程是轻松加愉快的,只 ...

  5. js从数组中取出n个不重复的数据

    /** * 首先,针对这个数组做一个去重处理,避免你在后面取数据的时候,因为取到相同的元素而又要多去取一次随机数 * 将获取到的不重复的数组,再到这里样本里面去取随机数 * 每取到一次,就将这个元素从 ...

  6. firstChild与firstElementChild

    相同点: 都是获取父元素下的第一个节点对象 不同点: firstChild: IE6.7.8 第一个元素节点; 非IE6.7.8:返回第一个元素节点或文本节点 firstElementChild: I ...

  7. StatusBarUtils工具类

    import android.app.Activity; import android.app.Dialog; import android.content.Context; import andro ...

  8. [ RESTful ] [ API ] 有用的資訊

    1. 淺談 REST 軟體架構風格 (Part.I) - 從了解 REST 到設計 RESTful https://blog.toright.com/posts/725/representationa ...

  9. java 读写分离

    源码地址:http://git.oschina.net/xiaochangwei 先回答下 1.为啥要读写分离? 大家都知道最初开始,一个项目对应一个数据库,基本是一对一的,但是由于后来用户及数据还有 ...

  10. iOS-Core-Animation-Advanced-Techniques/12-性能调优/性能调优.md

    性能调优 代码应该运行的尽量快,而不是更快 - 理查德 在第一和第二部分,我们了解了Core Animation提供的关于绘制和动画的一些特性.Core Animation功能和性能都非常强大,但如果 ...