关于表结构
早年间做管理系统和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、数据不变,程序经常要变(互联网产品,数据是核心价值,不会经常改变,只是数据量上的增长。一般也需要开发团队持续维护更新以满足不同时期的用户体验,所以程序的版本也迭代的很快)。