电厂的工资待遇怎么样:数据库设计问题`

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/09 00:25:55
我在设计一个订单表,有个字段,“订单状态”。我把他的状态用。0,1,2这些数字表示,还是直接用汉字或英文表示呢?
请各位大哥指导,并说明为什么。谢谢

用数字比较好,在你录入数据和读取数据时方便.而且用数字比较方便判断.不易出错.

0,1,2数字比较用来比较不容易出错.
汉字不是不可以,但个人认为,比较容易出错.
提高检索效率

用0、1、2表示较好,查询的时候可大幅提高检索效率。

我说你还是设成逻辑字段吧.逻辑字段只有真(.t.)和假(.f.)

我举个例子给你分析,你就知道里面的真正区别了呵呵:
比如你现在的状态有"在售","入库","到款"3个状态,你有2种办法记录:
1.订单状态字段直接放入"在售","入库","到款",所有记录如果要显示状态.可以使用 select 订单状态 from 订单表 where 订单号=XXX 这样的直接显示
2.订单状态字段记录状态id,比如1,2,3,另外设置订单状态表,里面有2个字段一个是主键id,另一个是订单状态名称,这个表记录1,"在售" 2,"入库" 3,"到款", 这样如果要显示订单状态需要使用 select 订单状态表.单状态名 from 订单表,订单状态表 where 订单表.订单号=XXX and 订单表.订单状态=订单状态表.id

表面上你发现2方法很繁杂,还需要定义一个表,但是实际情况是:客户在运营系统20天后,突然说,我们现在订单状态中的"入库"需要改成"已入库","在售"要改成"已售",这个时候,如果你选择了第1个方法,你需要对已经在表里的记录做统一的复杂处理,但是你选择第2种方法的话,你只要修改订单状态表的2个记录,把1,在售改成1,已售,2.入库 改成2,已入库什么问题都完美的解决了.

从上面的分析,我相信LZ自己也能选择是哪个方法要好一些了呵呵.

btw:其实,这个从理论上有个很简单的归纳,就是按照2NF范式对数据进行整合,使其摆脱了修改异常的依赖性呵呵.