name id
网络 1
汽车 2
动物 3
摄影 4
影视 5
数据库中存储的是id,页面显示的时候需要显示name。大家是在程序逻辑里面处理的还是在数据库中查询处理。
如果是多选列表的情况又怎么处理比较方便呢。是在数据库中存储为1,2,3呢还是存成外键关联的三行数据呢。这时候显示需要是 网络,汽车,动物。
很久以前就在为这个问题困扰了。一直没发现比较优美的解决方案。看了些开源的。有很多都是 text 和 value一样的。
大家平时都是怎么做的呢。
|
绑定的时候text和value分开绑,写入的时候存value,就是ID,我一般是这么处理。不过item少的话直接存文字就可以了吧 我是这样做的:分类字典一张表,关系存储一张表->存ID,关联查询 楼主,如你所说: A表(类型参数表) name id 网络 1 汽车 2 动物 3 摄影 4 影视 5 B表(使用A表的数据表) id Aid Name 1 2 凯迪拉克 2 2 皇冠 3 1 博客园 4 1 微软官方网站 5 3 狼和羊的故事 6 3 猫和老鼠的事 7 5 新片介绍 8 5 老片回顾 9 4 风景照 10 4 全家福 为何在此存入A表的id而不是A表的Name呢?使用表之间的约束,能够减少表之间的冗余数据,保证数据完整性,如果你使用A表的Name,那么会产生数据冗余,并且在A表发生更新时去修改B表中A表的Name(除非你觉得没必要修改),这样就产生了很多复杂的过程! 至于下拉选择框中的Text和Value,你可以将Text绑定到A表的Name列,而Value绑定到A表的id,这样在更新或查询B表时,只需要用下拉选择框的Value作为值或查询条件,就能很好的完成! 附:上面就是我使用此方法后在数据库B表的数据存储形式! 多对多的情况使用中间表比较好 这比在数据库存储1,2,3要好 另一方面使用id要比name好 举个简单的例子,如果name修改了呢?此时就会出现数据的不一致. |
|
8个月前 刚刚 : 楼主选择最佳答案不错,虽然我描述的与网友丁学所描述的一样,甚至可能更详细,但是是网友丁学先回答的,而且多给了一个方法,写如XML文件!呵呵楼主是个公平的人! |
|
8个月前 xiaowei : 写入XML也有问题,如果是网站是多域名的。如news.xx.com bbs.xx.com 等等,但每个二级域名只能读取自己目录下的XML,这样的话,有多个二级域名,就需要分别在每个二级域名下建立一个XML文件,也难做到数据统一。是不是? |