相对稳定信息的数据库表设计

在我们设计数据库的过程中,有些信息是不会随便变化的,比如性别(男,女),民族(56个)等等,为了方便维护这些信息,并不会将之固定在界面级别,写死在一个下拉框中,通常的做法是将信息存放在数据库中,而存放的结构大概都是以(ID,Name)这样的格式存放的,这样也没有什么大的问题.只是大家通常都要面临一个问题,那就是当在页面中显示的时候,会有不同的排序显示方法,可能是以ID进行排序显示,也可能是以Name按字母进行排序,大家在这个过程中的设计基本上已经满足要求了,因为在设计过程中,内容的显示要求自己可以决定内容在表中存放的顺序,那么就算有什么特殊的要求,程序员可以调整内容在表中存放的顺序,然后根据ID读取显示就ok了.一切都是那么完美,也不会出现问题.这样过上很长一段时间,那些相对稳定的信息终于发生了意想不到的变故,原本不会变动的信息发生了变动,如56个民族又新增了一个民族,好办,将这个信息加到第57行就好了,事情就这么容易解决了. 好,现在假如出现这样一种情况呢,要存储一个时间周期的信息,之前需要的周期有Day,Week,Month,Year,我们可以就按照这个顺序存放到数据库中,读取数据时,就按ID顺序读取,然后显示.如果系统中的数据已经使用了一段时间,又要加入一个时间周期Two Week,我们就只能将其加入的最后,ID也自动往上加,但是要读取显示的时候这个新加成员就只能显示在最后一项了,如果按照字母排序,那顺序更是乱了,我们想要的是这个新成员显示在Week和Month之间,这样才具有现实意义,改变数据库中原有数据的存储位置是个办法,但是系统已经投入使用,这些信息是不能变动的了,ID早已固定,不能变动,除非在页面上手动控制数据显示顺序,但是那样是非常不方便的,顺序到页面上再控制那么使用的地方非常多,不可能每使用一次控制一次. 怎么办呢?其实在当初设计数据表时就有办法解决这个问题,办法就是再新增一个描述顺序的字段信息,这样每次从数据库中拉数据都以其描述顺序信息来拉取,就算新增内容时,重新设置数据内容的现实顺序也不会打乱原来使用的次序,问题就解决了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值