![](https://img.haomeiwen.com/i2926249/aeb94b841d4ef001.png)
知识点:能不能根据功能去设计表...
![](https://img.haomeiwen.com/i2926249/807edae617d3fd16.png)
数据表设计:
1、根据功能分析数据表结构
![](https://img.haomeiwen.com/i2926249/a5c351feef211896.png)
id:通常情况要存一个主键、将来可以对数据进行增删改查操作。
留言标题:留言一般必备同理,留言内容和时间也应该设计进来,
留言人:因为需求有用户在线存储这个功能,所以要有这个字段
这道题主要考察留言板的一个设计,并没有考察用户系统设计。注意要切题。
根据设计创建sql语句:
![](https://img.haomeiwen.com/i2926249/a36cc2e46276bf00.png)
id自增主键、title varchar类型120长度、
created_at是创建时间,用int类型保存,存储成时间戳,注意的是如果用timestemp存的话只能存成它自己的固定格式的时间戳,对我们的时间戳不友好,也不太好计算,所以这里面可以用php获取到的时间戳存储进来,相对来说好处理。
把user_name创建索引,索引名为message_user_name,因为考虑到将来会大量的根据用户名查询相应的留言信息。所以创建对应的索引
表引擎推荐使用innoDB,默认的CHARSET是utf8
选择php去操作这张表的方式
整体来说,php连接数据库的方式分三大类:PDO、MySQLi、MySQL
![](https://img.haomeiwen.com/i2926249/a35a2f4051bd2a25.png)
mysqli效率高于pdo
![](https://img.haomeiwen.com/i2926249/a073de3348092c5f.png)
![](https://img.haomeiwen.com/i2926249/fa2f278c9aca6aee.png)
总体来说推荐PDO,因为其扩展性比较好。将来换其他库,也是没什么问题的,而且对于PDO来说,里面的一些方法也是比较完善的,相比PDO mysqli的扩展性稍差些。
编码能力:
![](https://img.haomeiwen.com/i2926249/58bbd492964990c3.png)
首先要new一个PDO的核心类,这里面选择dsn,用户名,密码,属性。然后编写sql,根据sql语句来做预处理,prepare,最终execute来执行。如果是查询操作,需要调用fetchall,将数据查询出来,遍历出来
![](https://img.haomeiwen.com/i2926249/19e4d4313a8c1af4.png)
解答方法:
![](https://img.haomeiwen.com/i2926249/ead1f1b597044204.png)
![](https://img.haomeiwen.com/i2926249/36fad651d2b421d0.png)
查看创建的表结构:
![](https://img.haomeiwen.com/i2926249/64833f7f5b02c7cb.png)
完成留言板插入功能:
模板页面form.html
![](https://img.haomeiwen.com/i2926249/647ee09bcf295539.png)
![](https://img.haomeiwen.com/i2926249/c4f1e3d0437e7b6c.png)
![](https://img.haomeiwen.com/i2926249/ec78ae5f5e10da2c.png)
添加成功:
![](https://img.haomeiwen.com/i2926249/de53009d46f8fc1c.png)
Q:
![](https://img.haomeiwen.com/i2926249/1c6c3953b4e9dcf3.png)
最多是设计数据表就可以了,有时间实现以下怎么完成操作:对于一张这样的表设计有以下方式:
第一种方式加一个pid,所谓无限就是可以在这张表存n级的分类,如图:可以根据pid找到父级,pid关联主键id,这样就把级别体现的很明白,最少只需要三个字段实现。
![](https://img.haomeiwen.com/i2926249/822d3d3910b37d63.png)
也可以在后面加个path路径,帮助进行显示顺序。若不加path,想实现级别顺序显示,需要递归实现。不想使用递归,则加path字段。父级的path路径-自己的id,然后order by path就行了。
![](https://img.haomeiwen.com/i2926249/81d1fe75da2bedd4.png)
网友评论