关于表结构

早年间做管理系统和ERP,因为厌烦甲方不停的需求变动,反正界面多数也无外乎是新增改查,于是常常有这样的表结构设计:

表一、定义字段

field_id field_name
1 name
2 code
3 company

表二、字段值

field_id field_value
1 张三
1 李四
2 ZHS
3 木楼科技

当时在不考虑性能、并发数以及界面多样性的时候,这种方式解决了不少问题,我经历过的两个公司都以这种方式来设计表结构,每次我碰到有看不明白的同事,就告诉他们『你就当是把数据表逆时针旋转90度来看』,但后来情况发生了一些变化,06、07年起从B/S管理系统转入互联网开发,数据表的字段往往不发生大的改变但是程序经常改变,有时候是界面,有时候是新的业务逻辑,有时候甚至是终端。。。比如后面的PC互联网转到移动互联网。

重构www.luckylight.cn的时候,又发现了这种表结构设计。。。也难怪,这是7、8年前的网站。

这里面是不是隐藏着这么两种不同的架构哲学?

1、程序不变,表结构经常变(ERP购买或外包给开发团队开发完之后,要改软件程序相对要麻烦)。

2、数据不变,程序经常要变(互联网产品,数据是核心价值,不会经常改变,只是数据量上的增长。一般也需要开发团队持续维护更新以满足不同时期的用户体验,所以程序的版本也迭代的很快)。