请教思路:比如一个表有一个维护人字段,记录每台设备应由谁来维护,这个字段是存人员名称呀?还是存人员编码好呀?
-----------------------
我的数据库中有一个登录人员表,我不想把类似维护人的信息加入到登录人员表中去,因为这些人不会去操作数据库软件,所以我想在设备维护人字段中存贮他们的名称。不知这种做法好不好,应该如何做好呀?

解决方案 »

  1.   

    请教思路:比如一个表有一个维护人字段,记录每台设备应由谁来维护,这个字段是存人员名称呀?还是存人员编码好呀?
    -----------------------个人觉得应该使用ID...,使用ID的目的,主要是考虑避免数据冗余...但是如果
    你可以参考一下这个评论,也是关于使用
      

  2.   

    可以用一个表存储人名和ID,在你这张表中填写对应人的ID。
    这样可以保证输入用户名和ID都是OK的。
    在你显示的时候,可以根据ID来显示人名,效果是非常OK的
      

  3.   

    晕..按了一下键盘,居然发送了...汗!
    这里是一个关于使用这个问题的讨论,LZ可以参考下:
    http://community.csdn.net/Expert/topic/4383/4383081.xml?temp=.9969904上面的情况下,如果你的维修人员量少(如总共有10个维修人员),则使用ID,或名称,对性能没有什么影响。
      

  4.   

    通常这样做...:维修员表(ID,姓名,....)设备维护对照表
    (设备ID,设备名称,维护员ID...)在需要使用的时候,可以使用select转个弯儿就行了,按照范式的要求,将表分隔成最小的不可拆分的单元...尽量避免数据冗余..壁如要查找 设备的具体维护人员...设备ID,设备名称,维护人员姓名
    {
    select 设备ID,设备名称,姓名 from 维修员表 A,设备维护对照表 B where A.ID=B.维修员ID
    就可以得到想要的结果了...
      

  5.   

    上面的各位都说存id好,可是如果这样的话,我的主表共有几十个字段,其中十几个重要的字段基本都是必须要存id的,这样每显示数据时就要连接十几个表,这样效率会高吗?
    我就是认为维护人这样不重要的信息,所以想不存id,而直接存姓名,这样查询时就不用再连接一次维护人员表了。
    每次需要显示内容时都要连接十几个表,总觉得有点问题。大家以为呢?
    是不是大家也是这样设计的呀?
      

  6.   

    PS,主表几十个字段是不是太多了?你把ID和用户名为字段单独作出一个表,每次都用ID查,最后一次把ID转为UserName不就行了?
      

  7.   

    你把ID和用户名为字段单独作出一个表,每次都用ID查,最后一次把ID转为UserName不就行了?
    --------------------
    是的,可是我如果想显示这张表的全部内容,就要连接所有表呀?
    比如连部门表得到部门名称,连设备表得到设备名,连维护员表得到修理工名,连设备类别表,得到设备所属类别的信息。连接设备运行状况表得到状况名称,等等。
      

  8.   

    明白你的意思了,呵呵
    部门表有部门ID,部门名称
    设备表有设备ID,设备名称
    ...........对吧!每个不同的表都有ID和名称,是吗?这个问题,我一般的做法是,把ID存在数据库里,名称干脆不存。如果ID和名称固定,可以直接在应用程序里用个字符串数组如果ID和名称有更新,就写一个配置文件,在配置文件里设置什么ID和名称的对应关系,而不是放到数据库里了。比较稳妥的办法是,还是建一个ID和名称的表,更新也在数据库里更新,不过这个表不用于查询。更新完这个表后,用程序把这个表直接导出成为配置文件就好了不知道别人是怎么处理的?
      

  9.   

    谢谢,您部分明白我的意思,我是说,象维护人员我样的信息,如果只在表中存id,那么显示时就要进行一次连接,如果存姓名,显示主表时就不用进行连接了。虽然存姓名多占些空间,可是显示数据时不用多一次连接呀?
    如果存id的好处是少占空间,但是查询时多一次连接,是不是更会影响速度呀?
    继续请教。
      

  10.   

    直接存姓名的话也是可以的
    我的意思是,如果ID和名称的表数据量不大,就存ID。
    ID到名称的转换可以放到客户端实现,这样是最省数据库资源的,不一定非要用数据库服务器建一个ID名称对应的表来实现
      

  11.   

    一般存编码,在一张人员表,这样可以减少冗余,数据的完整性好
    但是,有的时候为了查询方便,可以存一些其他的信息,比如说表中即存编码,也存名称,查询起来比较方便
    ---------------------
    谢谢,可能是我没说明白,我是指根本不建一个维护人员的表。在主表中只存维护员名称,
    也不存维护人员的id,因为这只是记录一下某台设备由人来维护。
    我关键想问的是:对于我说的这种情况,有没有必要建一个维护人员的表[在表中存贮id与姓名的对应关系。]比较经典的做法是什么?
      

  12.   

    我关键想问的是:对于我说的这种情况,有没有必要建一个维护人员的表[在表中存贮id与姓名的对应关系。]比较经典的做法是什么?
    单独建一个表,存放id与名称的对应关系,对于一般的信息而言,确有必要吗?
    ???
    这种处理方法的极端就是每个字段都会是一个id号,然后一个字段就要连接一个表呀?
      

  13.   

    理论上是存ID,不过多表连接的话是很耗资源的。建议ID和名字2个都存,稍微有点冗余没什么影响的。
      

  14.   

    理论上都是用ID,另建一个表存放ID和姓名等资料的。