200分技术分白花了,再问个数据库的问题
id 部门 科室
1 行政 财务科
2 行政 业务科
……
现在我用一下数据建立两个表,但是不知道这两个设计那哪个更好,初次设计希望多多指教
SQL code
create table Dept ( deptId int not null primary key identity (1,1), deptName varchar(60), ) insert into Dept(deptName) select distinct 部门 from 部门科室表 create table Section ( sectionId int not null primary key identity(1,1), deptId int not null foreign key references Dept(deptId), sectionName varchar(60) ) declare @i int set @i=1 while @i<=(Select max(deptId)from Dept) begin insert into Section(deptId,sectionName) select @i,科室 from 部门科室表 inner join Dept on Dept.deptName=部门科室表.部门 where deptId=@i set @i=@i+1 end
作者: wxxloveu 发布时间: 2011-06-09
肯定是现在的比以前的好,比较符合范式,冗余数据少,并且如果要修改 部门名字只需要修改一处
等等。。。。。
作者: abcjun188 发布时间: 2011-06-09
SQL code
肯定是现在的比以前的好,比较符合范式,冗余数据少,并且如果要修改 部门名字只需要修改一处
等等。。。。。
谢谢,但是查询起来需要连接两个表,会不会慢?
作者: wxxloveu 发布时间: 2011-06-09
作者: dotbyte 发布时间: 2011-06-09
作者: maco_wang 发布时间: 2011-06-09
这种小表,你改后的业务逻辑需求跟以前没多大差别,
作者: you_tube 发布时间: 2011-06-09
要看具体业务要求,
这种小表,你改后的业务逻辑需求跟以前没多大差别,
对的,现在就是想学习数据库查询那块,怎么样的设计会有什么样的查询语句,从而影响到查询的效率
作者: wxxloveu 发布时间: 2011-06-09
只不过多点数据冗余
作者: you_tube 发布时间: 2011-06-09
引用 5 楼 you_tube 的回复:
要看具体业务要求,
这种小表,你改后的业务逻辑需求跟以前没多大差别,
对的,现在就是想学习数据库查询那块,怎么样的设计会有什么样的查询语句,从而影响到查询的效率
如果做基表用,基本不存在查询效率问题,,,
第一种设计方式取数更加紧凑,效率高
第二种设计,更加规范点,实际应用当中反而有多多不便...
作者: you_tube 发布时间: 2011-06-09
部门也好,科室也好,都是层次结构的关系,所以不管哪一个都不好,设计成层次关系是最佳的。
学习了,要怎么设计呢?层次?
作者: wxxloveu 发布时间: 2011-06-09
如果只单纯的做基表用,我觉得以前的逻辑设计更加合理,方便,
只不过多点数据冗余
对的,是做基础数据使用的,其他数据表中的数据都是从这个表中读取的,一般设计要遵循什么呢
作者: wxxloveu 发布时间: 2011-06-09
引用 7 楼 you_tube 的回复:
如果只单纯的做基表用,我觉得以前的逻辑设计更加合理,方便,
只不过多点数据冗余
对的,是做基础数据使用的,其他数据表中的数据都是从这个表中读取的,一般设计要遵循什么呢
业务,范式...
作者: you_tube 发布时间: 2011-06-09