用户表能有多少记录啊? 大不了几千个吧? 有什么关系呢在用户表中加一个字段比如叫'DELETED',如果用户离开了就把这个字段设成'Y',在查询的时候如果要查现有的用户就SELECT * FROM EMP WHERE DELETED <> 'Y'.
这就是所谓的逻辑删除,不建议用物理删除.

解决方案 »

  1.   

    "日积月累,用户表中的记录将太多!"我认为不必担心. 就算你的系统将不修改地在现在的软硬件平台上运行10年, 能因为数据量太大而崩溃吗? 内部的BBS不会有很大的数据量.
      

  2.   

    >>按照:弱水三千的设计(以前也这样设计过)
    >>那这样又多了判断条件,减慢速度呀!
    这只是在查询时多了一个AND的判断条件过滤,而且用=或者<>,速度不会降低的.
      
      

  3.   

    当然是KingSunSha(弱水三千)的方法,所有大数据库都是这样设计的
      

  4.   

    USER(公司职员表)和CONTENT(发表的公告文章表)这两个表之间存在参照完整性约束(即平时说的“父子表”),其中USER(公司职员表)是父表,CONTENT(发表的公告文章表)是子表。
    好了,现在如果要删父表的记录,根据参照完整性的要求,必须删除子表中相应的记录--这满足应用的要求吗?满足,这不妨删除;否则,就别删。
    当然了,USER(公司职员表)中的记录(每一个职工)的状态不同,因此设置一个属性记录其状态(这儿是“是否在职”),如同KingSunSha(弱水三千)的方法,是常见的,也是必须的,只要你把这个属性看成是职工(user)实体的一个组成部分就行了。
    数据库设计,首先是完整、一致、安全、并发操作,速度是很后面考虑的事--某些特殊的应用除外。