这种情况下,数据库字段冗余应不应该


数据库表字段如下:

 

1  ID  int not null                  -- 编号
2 ClassID  int not null             -- 类型编号
3 ProductID varchar(20) not null   -- 产品编号
4 Content nvarchar( 400 ) not null   -- 内容
5 Type  int not null                -- 类型 1=Product所有,2=Class所有,3=公有

 

说说这几个字段之关的关系。

 当ProductID 不为0时 Type=1

 当ClassID 不为 空 时  Type=2

 当两个都为0时           Type=3

 

程序里面有几个取数据的方法。

1。取公有的   Select * From Table Where Type=3

2。取本类通用的 就是 Class所有 Select * From Table Where ClassID=@ClassID and Type=2

3。取Product所有的 Select * From Table Where ProductID=@ProductID and Type=1 

 这张表就这么几个字段  我没有看出来这个Type有存在的必要

 

如果没有Type字段的话程序就应该修改为

1。取公有的 Select * From Table Where ProductID=0 and ClassID=''

2。取本类通用的 Select * from Table Where ClassID=@ClassID

3。取Product所有的 Select * from Table Where ProcudtID=@ProductID

这样复杂吗?关系很难搞清楚吗?

 

原来,我也不知道他怎么想的。

 

说说这几个字段之关的关系。

 当ProductID 不为0时 Type=1

 当ClassID 不为 空 时  Type=2

 当两个都为0时           Type=3   这个关系是我从他嘴里问出来的。

 

我跟同事说,把Type去掉,没有存在的必要。他跟我说,有用的。取数据的时候我要跟据Type取的。你这么复杂的关系我怎么理的清楚。去掉之后程序变的复杂难以维护,关系又这么复杂,什么当ProductID 不为0 的时候就是Product私有的。。。。。。一大堆的话。

 

最终还是没有把Type字段去掉。 我现在很不负责任。反正不是我设计的,而且多一个字段,对于这种只存几百几千的数据量的表来说应该一点影响都没有的。不就多一个字段吗。

 

最近郁闷的事情特别多。

 

谈谈Type这个字段是否有存在的必要。

 


 

 

 

你可能感兴趣的:(数据库)