数据库表 — 综合设置表 讲解

发布时间:2015/12/30 22:11栏目:学习笔记

有朋友和我说,这个表他看不懂存在的意义,不懂为什么要设计这一张表,其实我想说这个表很重要,基本所有的CMS系统都有。一两句说不清,就写一篇文章,也给一些朋友科普一下,大神请绕过勿喷。。。


在我的博客数据库中,有一张表为:toilove_seting — 综合设置表 ,里面记录了一些数据,其内容截图为:

QQ截图20160115094050.png

关于隐私部门已打码...

先来说说为什么要设计这个表吧。


很多人在设置一些基本信息,比如站点信息的时候,会单独直接一张表,然后各种字段(比如:站点名称、站点logo等等)就是自己想要的信息,不知道你们是不是,至少我以前也是这样,在我的站点1.1版本之前是这样的。这样设计表结构,刚开始写起来确实很简单,但是在后面开发会有很大的问题。

一:当你的想增加一个信息的时候,你需要增加一个字段。

二:当你有很多想要保存的信息,比如站点信息、站长信息、邮箱设置,你就要设计很多表,字段依次为这些信息,当然你可以将很多融合到一张表,但是你会碰见第三个问题。

三:当你只需要某几个甚至某一个的信息时,那么多字段你控制起来很麻烦。

四:字段太多,看起来太复杂,

差不多就这四点吧,我也记不清当初是因为什么让我放弃了用表的字段记录关键字,在寻求新的解决方法,所以就出现了这张表,在1.2版本叫 about表,只用了记录站点和我的信息,随着我不断学习,版本更新,发现它的重要性,发现在很多CMS都用这些方式记录。


现在说说 综合设置表 的字段各个意义吧。

ID、type、attribute、value、explain (暂时用的是这五个,但是我已经有了新的表结构设计,会在我的Toilove Admin系统 中使用,到时候再做讲解)

1:我们先说 attributevalue ,这个从字面意义大家都明白,属性和值,合起来称之为键值对,通俗一点,就是一个键对一个值。

例如: author -> 陈都 、name -> Toilove个人博客

可以说,键值对是这张表的灵魂,没有键值对,这张表就没有意义。

键值对应用来站点中,充当着参数设置,很多信息需要保存,比如站名、域名、备案很多很多,当然,白板站就除外了。

当你要做一个属性可控制的网站时,你不可能将站名和域名写死,至少我不是这样的,一般开源站点都这样吧,方便他人搭建学习,修改参数。

也许你会问,怎么使用呢,我先说不急,介绍完字段再说。

2:其次我们来说说 type 这个字段 ,类型字段。这个大家很容易理解,很多键值对其实会同时用到,比如:站点名称、站点链接、站点备案、站点地址,基本属于站点的一些基本信息,所以这个 type 字段的作用就在分类,当我们需要什么类型的时候,就根据这个type,来得到相应的键值对。

3:最后来说 explain 和 ID 吧,也很好懂,前者是备注的意思,一是怕你记性不好(反正我是咋地...),给这个字段做个备注,二则会在表单设置的时候充当字段说明。比如:

2.png

看看,在你设置属性的时候,他就可以告诉你是你填的是啥。


好了,现在和你们说说怎么使用这个吧。

这个表会在两种情况时使用。

1:显示信息

2:设置信息

在显示信息的时候,我写了一个函数,为

// 站点数据函数
// 功能:获取站点的相关数据
// 变量:  $typeId  -> 数据的类型

function wwwData($typeId){
    $where['se_type'] = $typeId;
    $data = M('seting') -> where($where) -> select();
    for ($i=0; $i < count($data); $i++) {
        $wwwData[$data[$i]['se_attribute']] = $data[$i]['se_value'];
    }
    return $wwwData;
}

他会将你输入的类型,以键值对的方式返回,比如你要在页面标题<title>中显示站点名称,就直接:<title>{$wwwData['name']}</title> 。以此为例,其他地方也有。

在设置数据的时候,则直接根据类型进行数据全部获取,这个涉及到很多方面,在这里就不展开说明了,大家看我博客的后台信息设置页面就可以了,不明白的可以随时问我。

好了,该休息了。

预祝各位 元旦快乐~

版权说明:本文为【Toilove个人博客 - 一个菜鸟程序员的学习旅程】原创文章,转载请说明出处。
文章地址:http://toilove.com/article/35.html
Notice最新公告2016/11/11 15:44

光棍节快乐~

新版本的静态页面已经快要完工了,界面效果个人感觉不错。

今年一定要更新博客!

Search内容搜索
Abuot关于程序开源程序提供下载学习
Link友情链接欢迎各位站长交换链接