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