现在,有这样一个功能。每当查询之前,先选择所要显示的哪几列及字段.(如显示:姓名,年龄)。然后,查询时,只显示所选择的哪几列及字段的信息。数据库,表应该怎样来设计?谢谢!

解决方案 »

  1.   

    举个例子:person里有姓名,年龄,性别。
    如果把这3个字段存到一个表中,那么任何对person的查询都会将她们全查询来。这是面向对象思想。
    如果你要只查询出部分字段,比如姓名和年龄,可以采取的方式是建立2张表,一张存姓名,年龄,另一张存性别。如果要查性别,就将性别加载进来,这个在实际中Hibernate会帮你完成。
      

  2.   

    如果只是一张表 那就好办啊  选择的显示列的value值设置为 表的字段名 如 checkbox value="age" 年龄  后台接到的值拼字符串 去查数据库 如果你要做report工具 那么就看看 ResultSetMetaData 动态加载和配置result的现实  报表都是这么做的啊  执行column  title 想怎么显示就怎么显示
      

  3.   

    你这个属于自定义列显示的功能,你应该是说需要记录下客户端设置的列信息,若为系统级配置那也一样。首先要具有前端自动生成列的功能,这个需要前端开发的功底其实就是需要创建表格,将以下常规信息记录:
    1、界面编号(一个页面以为唯一编号,这个需要定义好)。
    2、列名称(对于你的数据库字段或查询视图)
    3、是否显示
    4、宽度
    5、对齐方式
    6、颜色以及样式
    如果有自定义列信息,需要一张扩展表来存储。
    此时有两条路来选择如何开发:
    1、做大视图,将需要的列信息作为一个大视图查询出来,将信息抛给前台时,根据上述配置信息动态控制前端某些列显示还是不显示。2、根据需要显示的列对相应的表格进行查询,这种设计是灵活的,感觉很友好不过这种会形成各种SQL,如果是ORACLE 的OLTP系统中会造成很多问题,这里就不多说了