-
为每个表增加一个标记删除的字段好么10
最近在做一个项目,表关系比较复杂,而且以后可能会有很大扩展。我想为每一个表建立一个表征是否可用的字段,“1”为可用,“0”为禁用,默认为“1”,用户在前台所做的“删除”仅能改变此字段的值,真正的删除只能通过后台实现,请问这样做的优缺点是什么?2008年11月23日 20:11
14个答案 按时间排序 按投票排序
-
采纳的答案
因为你上面说到了你们做的东西的表结构比较复杂,那么这点就很明确了。做逻辑删除(设标记)比物理删除要好的多,因为你在多表进行操作的时候一定是有关联的,如果你物理删除了这个字段,在你下次再跑程序的时候,你关联的方法会因为找不到你的这条记录而报错误,这样你的维护起来就很不好维护了。
但是逻辑删除和物理删除也要分情况,如果是末级的记录,经常更新的,为了维护起来方便可以设置成物理删除的,如果是标题类的,或者是菜单中的比较重要的关联表中的记录,那么最好就打上标记,以防以后操作中因没有了关联记录而报错误。
我不知道这些能否帮助你解决问题,但是应该会有一些帮助吧,呵呵!2008年11月25日 12:27
-
比方说A表中存在有BID。
你显示A表的时候需要把B表的信息显示出来。
如果你删了你的B表记录,那么你的程序要么是报错,要么是显示为空。这样子的情况做为一些数据记录的表来讲是很好的一件事情。
所以就会有active这种字段的产生。
一般用于数据档案表。2008年11月26日 10:08
-
这个方法非常好,我发现有不少系统都是这样做的。
LZ的业务逻辑很复杂的话,删除一条记录可能会牵连到很多其他表的修改,这时如果实时操作的话很可能导致数据库并发度下降。 标记删除后可以在晚上运行一个回收数据的任务,这样可以比较好的解决残余数据的问题。2008年11月23日 20:11
-
这个要看业务的,业务是否需要逻辑删除,做某种特殊效果考虑这种方式。
不然你很容易让整个系统都是过期的数据,没有一个表是可以删除数据的。
增大的麻烦性你都可以感到恐怖。
历史数据可以考虑移动到别的表。
在一个万一怕用户删除失误需要恢复,不是还有数据库恢复功能的嘛,不用
自己吭哧吭哧吧2008年11月23日 20:11
相关推荐
表T2 删掉 C2字段 alter table T2 drop column C2; 表T1 增加 g字段,类型为number(10) alter table t1 add g number(10);
Oracle使用 alter 增加 修改 删除 字段, 可以同时添加多个字段 创建 修改 添加表的约束
删除字段及约束,SQL技巧; 删除字段及约束,SQL技巧 删除字段及约束,SQL技巧
常用的sql语句。新建表、删除表、插入数据、删除数据、更新数据、新增字段、删除字段、修改字段、新建约束、删除约束,等等常用语句
在数据库中可以任意添加一个字段或删除一个字段,不需要删除整张表
Thinkphp3.2.3自定义添加数据表及表中字段。可在后台自主设置数据表名,添加拥有基础字段(id,createtime等)表,添加的表可自主在页面中添加、修改、删除字段。也可在页面中删除表
sql行列转换、一个字段包含另一个字段.sql
在Oracle中若删除一个不存在的表,如 “DROP TABLE tableName”,则会提示: ORA-00942:表或视图不存在 若在程序中执行该语句则会报异常,这就需要我们在删除表前先判断该表是否存在,若存在则删除. DECLARE num NUMBER;...
在ARCGIS属性表中增加需要的字段,并自动赋值2009-11-20 1打开属性表,选择计算的字段,右点选择Calculate Values;2.选择“是”,进入Field Calculator; 2选择Advance选项; 3 在Pre-Logic VBA Script Code编辑框中...
用python sqlite3给已经有的表增加字段。sql语句的写法,表名用自己的,其他的请严格区分大小写,要不然不会成功。
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….); 修改字段的语法:alter ...使用alter table 来增加、删除和修改一个列的例子。 创建表结构:create table test1(id
1、加字段: alter table 表名 ADD 字段名 类型; eg: alter table sys_cwzd ADD SCCLLJ VARCHAR2(50); 2、加备注: comment on column 表名.字段名 is '备注名'; eg: comment on column sys_cwzd.SCCLLJ is ...
资源名称:Asp代码增加、删除access数据表和字段资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
代码如下:select a.man_id,man_name,d.sex_name,zw_name,c.money from man as a left join zw as b on a.zw_id=b.zw_id left join zw as c on a.man_id=c.man_id — 同时关联zw字段,通过表别名区别开 left ...
一个完整的字段包括字段名、数据类型和约束条件。MySQL 添加字段的语法格式如下: ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件]; 对语法格式的说明如下: <表名> 为数据表的名字; <新字段名> 为所要...
android 数据库升级,增加字段,以后会更新升级增加建表
要求:查询一个字段的数据,将每个数据拆分,取第一个字符,将第一个字符遍历出来,替换到另一个字段里面
mysql 查询表中多少个字段
MySQL批量对表增加指定字段,会快速实现批量字段的添加。写了2个存储存储过程,执行即可。方便快速!
1.sakila.mwb 模型中,表结构里每个字段前面的小标记分别表示什么意思? 2.图中哪部分体现影片-演员关系?换句话说,如果要找出演某个影片的演员名 字,访问哪几张表可以获得信息? 3.如果已知某个顾客姓名,要找到...