在很多应用上,如果用户在界面删除了某数据,一般在数据库并没有物理删除,而是使用字段来标识,在我看来,有两种设计方式:
1:添加一个DeletedTime的DateTime字段,默认是为null,如果有值,说明已经被删除2:添加一个IsDeleted的Bit字段和一个DeletedTime的字段,根据IsDeleted来判断被删除
个人观点(不知是否正确):
第一种的好处是简单,维护起来省事第二种的好处好像是速度比较快,但需要同时维护两个字段请问各位Developer & DBA 是如何设计的 ?

解决方案 »

  1.   

    对 bit类型或者int 类型 用程序或者数据库判断更方便些,
    二判断null 好像不怎么方便。。
      

  2.   

    用方法二。null来判断好像不是很好
      

  3.   

    程序中可以扩展一个属性
    IsDeleted 它返回 DeletedTime is null,这个倒也不麻烦一般情况下,删除标记在Where 子句中是经常要用的,有时甚至会建立索引以提供性能,好像对allow null的字段建立索引会有影响,在is null是可以使用索引,在is not null不可以使用,不知是否这样?