logo

紧接着14期的内容,在基本规划做好以后咱们先把数据库建好。昨天有人建议我按照QQ企业邮箱的来做,这个可能太复杂了,怕大家更加迷茫,我做案例更多是希望朋友们通过案例举一反三,从简单的产品推导出复杂的应用。


第十四章 公司通讯录开发

二、公司通讯录数据库建立

第13期里有SAE数据库的介绍,如果没有开通的请先移步把SAE的数据库服务开启,点击“管理MySQL”进入到数据库的图形管理界面,如下图:
img-2

数据库里目前没有任何数据表,所以我们先来建立第一张数据表“员工表”,取名为“roster”,员工表我调整了下结构增加了几项,最后的项目为:序号、姓名、工号、照片、性别、生日、手机、电话、部门、邮箱、微信号、微信OPENID、员工状态、入职日期、添加时间、更新时间、记录状态

在建表之前其实还要设定每个字段项的属性,我这里简单写一下,后面在解释建表的时候大家可以参照看:

字段名 类型 长度 其他
序号 数字 5 自增、主键
姓名 字符 10
头衔 字符 20
工号 字符 10
照片 字符 50
性别 数字 1 0为女,1为男
生日 日期
手机 字符 15
电话 字符 15
部门 数字 4
邮箱 字符 50
微信 字符 30
openid 字符 50
员工状态 数字 1 1为在岗,-1为离职,2为休假
入职 日期
添加 时间
更新 时间
记录状态 数字 1 1为正常,0为删除

字段数根据上面的规划应该是18个字段,所以应该填写18,但我这里填写3是为了后面切图片和讲解的方便,大家如果填写18看到的样式会不同,没有关系,另外建立过程中还可以增加字段数的。

点击执行按钮,就切换到表设计界面,如下图:
img-3

在上图中每一列就是一个字段,如果大家前面填写字段数超过5的则视图中每一行就是一个字段,但不管如何显示,每个字段都有下面这些属性:
- 字段名称,用来描述字段的名称,它可以用中文、英文字母、数字等字符来描述。但是建议不用中文或者纯数字,命名最好使用表名+下划线+该字段的英文名或者拼音缩写。

  • 字段类型,用来限定数据格式,同一字段的数据类型都是一样的。点击类型的选项菜单会出来一大堆,不用怕很多我们是不太会用的,常用到的类型如下:

    TINYINT:一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255。
    SMALLINT:一个小整数。有符号的范围是-32768到32767,无符号的范围是0到65535。
    MEDIUMINT:一个中等大小整数。有符号的范围是-8388608到8388607,无符号的范围是0到16777215。
    INT:一个正常大小整数。有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。这个经常用来保存UNIX时间戳。
    CHAR:一个定长字符串,当存储的字符长度小于设定长度时总是是用空格填满右边到指定的长度,超过则自动截断。最多存放255个字母或者汉字,也就是不超过255个字符的都可以设成CHAR类型。这里不推荐用VARCHAR,因为处理速度不给力,对于存储空间不敏感的可以忽略。
    TEXT:最多可存放65535个字符,一般用于保存文章等。该字段无需填写长度。
    DATETIME:一个日期和时间组合。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式来显示DATETIME值。该字段无需填写长度。
    DATE:一个日期。支持的范围是'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式来显示DATE值。该字段无需填写长度。

  • 字段长度,每一个字段需要存放的数据可能最大位数,比如序号是用来做数据条数计数的,员工一般也就几万人了,所以这里设了5;姓名的话一般最多4、5个汉字,但是为了避免有奇葩的名字所以设了10位,其实如果考虑老外名字的话建议设定为30。

  • 字段默认值,指如果这个字段在添加一条新的数据时没有获得赋值时将会保存成字段默认值。

  • 字段语言格式,点击这个选项卡就可以看到一大串各种语言格式,不用管他,我们可以总的设定一个就可以了。除非是有特殊需求。

  • 字段属性,这个主要是针对数字型字符的,前面介绍的几个数字类型里有写无符号和有符号,就是在这里设定。

  • 字段是否可为空,打钩标示可以为空,一般不打钩,因为含有空值的列很难进行查询优化。

  • 字段索引,这个很重要,索引将影响数据库查询的效率,一般会将常用的几个搜索关键字段或者排序字段建立索引。不推荐字符串字段做索引,另外主索引只能有一个,自动增长的字段会被默认作为主索引。

  • 自增属性,在数据库应用,我们经常要用到唯一编号,以标识记录,最好的办法就是将其中一个字段设为自增属性,每新增一条数据记录是都会自动加一,其计数顺序不受数据删除影响,如果有10条数据,删除其中一条后再新增一条,这条数据的序号不是10,而是11。

  • 字段注释,方便日后了解该字段的作用。

  • 数据表注释,方便日后了解该数据表。

  • 存储引擎,常用的有三种分别是MyISAM、MEMORY和InnoDB,其中MyISAM是管理非事务表。它提供高速存储和检索,以及全文搜索能力,是默认的存储引擎,一般选这个就成。

  • 数据表语言格式,前面字段里也有语言格式设置,其实只要这里设一个,所有的字符串字段就都默认用这个语言格式了,我们这里选择utf8_general_ci,就是UTF-8的语言格式。

了解数据表的一些基本知识后我们再来看员工表的每个字段属性实际应该如何设定,截图在手机上可能会有些小,大家可以到wx.qq.com上找到ZTalk的公众号里输入微信教程查看。
img-4

全部设定好后点击右下角的保存即完成建表,如果字段需要增加的可以点击旁边的执行按钮增加一条或者多条新字段,如下图所示,其中修改数字可调节新增的条数。
img-5

啰嗦一大堆估计很多朋友都云里雾里了,咱们还是搞简单点的吧,建立数据表除了上面那种方法还有一种是通过SQL语句来建立,如下图:
img-6

点击选项卡的SQL,然后在输入框中写入以上的代码就直接完成表的建立,当然我知道大家这个代码是写不错来的,所以这节课的课件里有……输入“微信代码”就可以下载。

建立成功的话刷新网页就可以看到员工表已经建立成功了,如下图
img-7

  • 数据表记录浏览,当里面没有数据时该图标灰色不可点。
    数据表结构查看,点击后可以看到,我们所有设定的字段属性,如下图:
    img-8
    标示为1的地方可以新增字段,标示为2的地方是对某个字段进行编辑修改删除等操作。
    数据表查询,当里面没有数据时该图标灰色不可点。
    新增一条记录,点击后进入下图,可以像我这样随便输入一些数据然后点执行就给数据库插入一条数据了,注意的是roster_id这个字段空着就可以了,系统会自动赋值:
    img-9
    新增成功后点击数据表浏览就可以看到这条记录,如下图:
    img-10
    清空数据表,请谨慎……
    删除数据表,请谨慎……
    新建数据表。

关于数据表的建立基本就到这里了,昨天写的规划是4张表,但后来考虑了下觉得第一个案例没必要搞的那么复杂,所以管理员和日志表先去掉了,就留员工表和部门表,并做了适当的调整。

部门表我给大家列下属性,大家可以先尝试自己建一下,当然我也提供了代码供下载。

部门表:

字段名 类型 长度 其他
序号 数字 5 自增、主键
部门名 字符 20
成员数 数字 5
上级序号 数字 5
添加 时间
更新 时间
记录状态 数字 1 1为正常0为删除

数据表名字请使用class,字段名请参考我的,如果换别的话,后面程序里也要相应更换。
img-11



今天就先到这里,回复“微信代码”查看今天的源码,请注意,要把数据库名称app_weixincourse替换成你自己的数据库名称,不然无法新建!如果打开有乱码的请修改网页编码为utf-8!有不清楚的请留言,明天讲后台的录入及数据库操作。


青龙老贼
1.1k 声望498 粉丝

WeMedia自媒体联盟创始人,自媒体人,移动互联网分析师