情况是这样的,我以前做网站的时候遇到像“推荐”,“置顶”啊之类的,都是在表里加一个字段如“IsTop”或是"IsDelete"等,用BOOL型。可是最近来到新公司,公司的领导不是这么做的。如:“IsTop”表示是否删除,他就用建一个news_delete表,里面的记录就是己经"IsTop"的ID值。这么做好像也不错,用起也很方便。要增加别的类似别的,不用在修改原有的表了。请问在数据库设计方面的高手们,如何是好。

解决方案 »

  1.   

    总结一下:jordan102,whg4585的看法。
    1,大数据量
    如果不另外建表,是不是数据库引擎要排查每一个记录是不是isdelete呢?如果另建表,是不是说只会用到那几条是isdelete的表呢?我们数据库有2万条数据吧 ,以后可能会到10万条。2,数据结构复杂
    字段多是挺烦人的,由其是数据字段和这样不是数据字段,是出于管理目的而设立的字段。
      

  2.   

    自定义字段的两种做法,一种是往本表加字段,一种是建一自定义字段表存值。个人认为各有千秋吧,后者语句稍微复杂些,也不好弄索引,搜索不方便,需要join操作,数据增多,可能会有效率问题,不过胜在扩展方便,前者简单暴力,方便设置索引进行搜索,不过不好扩展业务,最好两种方案都保留,具体问题具体做法。
      

  3.   

    foolbirdflyfirst 能有原则性或规律性点的方案吗?具体问题具体方法小弟明白了。原则是不是数据量大的就用建表方案。
      

  4.   

    谢谢 foolbirdflyfirst xuzuning whg4585 jordan102。我这也算又一经典问题了吧。嘿嘿
      

  5.   

    不好意思,最近忙坏了。以前的号因为在上次CSDN被黑的时候丢了,这是新的,不太注意了。