2 wxk813819 wxk813819 于 2015.07.28 16:08 提问

数据库中表的多余字段处理

在设计数据库资料目录管理的一张表时,其中有两个字段 一个HavezlFlag(标记此目录下是否含有资料) 另一个HaveSubDirFlag(标记此目录下是否含有目录类似文件夹),这
两个字段因为用户常添加和删除,所以不必存储,只要需要时再临时计算,这个用视图可以解决嘛,怎么解决,求详细方法。

4个回答

smch
smch   2015.07.28 23:34
已采纳

合理设计的表格不会有经常添加删除的字段,尤其是数据库里面数据多的时候这是严禁的操作,有些数据库一增删字段就锁整表,其它涉及这个表的操作就会进入等待状态。
如果按你说的是临时计算,那么可以考虑用计算列。或者在用户查数据的时候在应用端计算这样能减少数据库负担。

song79915
song79915   2015.07.28 16:38

如果想在数据库一级计算得到这两个字段的话,可以用视图,也可以直接用SQL,可以把子查询结果作为一个字段返回。

song79915
song79915 回复wxk813819: 具体怎么实现就要看你的业务逻辑了。基本上就是这样实现的:CREATE VIEW view_name AS SELECT column_1, column_2, column_3, ( SELECT TOP 1 column_4 FROM table_name WHERE condition ) AS column_4 FROM table_name WHERE condition
2 年多之前 回复
song79915
song79915 回复wxk813819: 你可以把两个字段删掉,然后在视图里用子查询返回这两个字段。
2 年多之前 回复
wxk813819
wxk813819 如果说不这两个字段不写在表里,还能创建视图嘛?因为它本来就不需要存储。用sql 2005
2 年多之前 回复
Levideng
Levideng   2015.07.28 20:07

CREATE OR REPLACE FORCE VIEW (
HavezlFlag,
HaveSubDirFlag
)
AS
SELECT HavezlFlag,HaveSubDirFlag from table where 1=1 and option1=?;
建个视图,按条件查询就可以了

wxk813819
wxk813819 不好意思,我那个用的是微软的数据库软件
2 年多之前 回复
sina_2831808769
sina_2831808769   Rxr 2015.07.28 20:13

写动态sql语句对这2个字段进行判断

wxk813819
wxk813819 动态sql语句去判断这两个字段里面存储的值?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片