大话wordpress之进化之美(1)

领导让小菜为公司开发一个网站,功能很简单,就是要在后台能输入2种类型的内容,一种是新闻,一种是产品,前台能够分门别类展示出来。

Smart-Watermark

常规思路,第0.1版,小菜的设计如下:

#新闻
CREATE TABLE news (
id int(10) PRIMARY KEY AUTO_INCREMENT,
content text
);

#产品
CREATE TABLE product (
id int(10) PRIMARY KEY AUTO_INCREMENT,
price decimal(15,4),
title text
);

很快搞出来了,用得还比较顺。

不久,领导说,“产品信息中得加上规格,另外,公司的人才信息也得进行管理”。“不就是加个字段,加张表吗?”,小菜在新闻表中增加一个“规格”字段,又增加一张人才表,里面一堆人才有关的字段,增删改也不难,很快搞起,领导很满意。

不过,小菜心里还是有阴影,“总是加表加字段的,还要加代码,冗余信息越来越多。。。”。

果然,“小菜,你开发的这个项目很成功啊,隔壁老王公司看上咱们的软件了。怎么样,把它搞成产品”。“老王的需求是什么?”,小菜挠挠头。“需求?他的需求连他自己都不清楚,你搞成活的,他想发布啥就发布啥,开发抓紧点,996”。

。。(此处2个字),“尼玛,高难度哇,连发布什么内容都不知道,就要开搞。。。”。

3天,第0.9版,设计如下。

#主表,存放公共信息
CREATE TABLE posts (
id int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,
content text
);

#附表(即元数据表),用于存放扩展信息
CREATE TABLE postmeta (
id int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,
post_id int(10) COMMENT '内容记录号',
key text COMMENT '字段名',
value text COMMENT '值'
);

不再有新闻表,产品表。。。,所有的公共字段纳入“posts”这张主表中,所有的特定字段纳入“postmeta”附表中。

比如,增加一条新闻信息时,在posts表中插入一条记录,“content”字段中就放“新闻内容”,不需要用到附表。

增加一个产品时,在posts表中插入一条记录,其中“content”字段中放“产品说明”,得到插入后的记录号(假设为1000),再在postmeta表中插入一条记录如 (100, ‘价格’, ‘199元’)。

增加。。。,都这么玩。

“高!”,领导拍腿而起。

表的大一统是Wordpress的首次直立行走,是由博客向CMS进化的重要一步。从此,所有的要发布的内容均纳入主表posts和附表postmeta中,使系统具有扩展的无限可能性。

“wordpress的面貌从此焕然一新”。

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注