看《小F博客》触发器迷糊了,来帮忙

zhangxqiangxx 2009-11-10 10:25:42
http://blog.csdn.net/fredrickhu/archive/2009/10/21/4708906.aspx

SQL触发器实例2

下边有这个语句

INSERT INTO 卷烟库存表(卷烟品牌,库存数量,库存单价,库存金额)
SELECT ’红塔山新势力’,100,12,1200 UNION ALL
SELECT ’红塔山人为峰’,100,22,NULL UNION ALL
SELECT ’云南映像’,100,60,500 UNION ALL
SELECT ’玉溪’,0,30,0
GO

这是个插入语句么??




还有数据库范式方面的

http://kelaocai.javaeye.com/blog/136859
(1) 用户信息:用户名,email,主页,电话,联系地址

  (2) 帖子信息:发帖ID,标题,内容

  (3) 回复信息:回复ID,标题,内容

  (4) 发贴:用户名,发帖ID

  (5) 回复:发帖ID,回复ID

  这样的设计是满足第1、2、3范式和BCNF范式要求的,但是这样的设计是不是最好的呢?

  不一定。


  (1) 用户信息:用户名,email,主页,电话,联系地址

  (2) 帖子信息:用户名,发帖ID,标题,内容

  (3) 回复信息:发帖ID,回复ID,标题,内容


数据库表1显然满足所有范式的要求;  
数据库表2中存在非关键字段"标题"、"内容"对关键字段"发帖ID"的部分函数依赖,即不满足第二范式的要求,但是这一设计并不会导致数据冗余和操作异常;

  数据库表3中也存在非关键字段"标题"、"内容"对关键字段"回复ID"的部分函数依赖,也不满足第二范式的要求,但是与数据库表2相似,这一设计也不会导致数据冗余和操作异常。

这里边(2)的发帖ID应该是主键,而用户名是外键, 这样发帖ID是不会重复的,那怎么会出现 非关键字段"标题"、"内容"对关键字段"发帖ID"的部分函数依赖 呢?
...全文
76 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
bancxc 2009-11-10
  • 打赏
  • 举报
回复
有请小F
guodong66 2009-11-10
  • 打赏
  • 举报
回复
简单的说 第三范式就是
一个数据库表中不包含已在其它表中已包含的非主关键字信息
zhangxqiangxx 2009-11-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 fredrickhu 的回复:]
关键要搞清楚什么叫做 第三范式

第三范式中的主要的是依赖关系

满足第三范式的数据库表应该不存在如下依赖关系:

  关键字段 → 非关键字段x → 非关键字段y

[/Quote]

不懂 , 汗啊 我在研究下第三范式,大学欠的债啊,那时候怎么就没好好学呢。。。。。
--小F-- 2009-11-10
  • 打赏
  • 举报
回复
关键要搞清楚什么叫做 第三范式

第三范式中的主要的是依赖关系

满足第三范式的数据库表应该不存在如下依赖关系:

关键字段 → 非关键字段x → 非关键字段y
zhangxqiangxx 2009-11-10
  • 打赏
  • 举报
回复
哥哥们,下边的那个设计范式 能解释下不,

(2) 帖子信息:用户名,发帖ID,标题,内容

这里边发帖ID不会重复,那么 标题 和 内容 怎么会函数依赖发帖ID 而不符合第三范式呢???
--小F-- 2009-11-10
  • 打赏
  • 举报
回复
(1) 用户信息:用户名,email,主页,电话,联系地址

  (2) 帖子信息:发帖ID,标题,内容

  (3) 回复信息:回复ID,标题,内容

  (4) 发贴:用户名,发帖ID

  (5) 回复:发帖ID,回复ID

这个比较好 具体到用的时候你会发现表与表直接的连接比较清晰
--小F-- 2009-11-10
  • 打赏
  • 举报
回复
呵呵
dawugui 2009-11-10
  • 打赏
  • 举报
回复
(1) 用户信息:用户名,email,主页,电话,联系地址

  (2) 帖子信息:发帖ID,标题,内容

  (3) 回复信息:回复ID,标题,内容

  (4) 发贴:用户名,发帖ID

  (5) 回复:发帖ID,回复ID
我觉得这个比下面那个好.
SQL77 2009-11-10
  • 打赏
  • 举报
回复
对于那个范式是
一对一的理解,其它的不懂
SQL77 2009-11-10
  • 打赏
  • 举报
回复
SELECT ’红塔山新势力’,100,12,1200 UNION ALL
SELECT ’红塔山人为峰’,100,22,NULL UNION ALL
SELECT ’云南映像’,100,60,500 UNION ALL
SELECT ’玉溪’,0,30,0

你把后面的当成一个表就行
SQL77 2009-11-10
  • 打赏
  • 举报
回复
下边有这个语句

INSERT INTO 卷烟库存表(卷烟品牌,库存数量,库存单价,库存金额)
SELECT ’红塔山新势力’,100,12,1200 UNION ALL
SELECT ’红塔山人为峰’,100,22,NULL UNION ALL
SELECT ’云南映像’,100,60,500 UNION ALL
SELECT ’玉溪’,0,30,0
GO

这是个插入语句么??


这个当然是插入语句呀
dawugui 2009-11-10
  • 打赏
  • 举报
回复
INSERT INTO 卷烟库存表(卷烟品牌,库存数量,库存单价,库存金额)
SELECT ’红塔山新势力’,100,12,1200 UNION ALL
SELECT ’红塔山人为峰’,100,22,NULL UNION ALL
SELECT ’云南映像’,100,60,500 UNION ALL
SELECT ’玉溪’,0,30,0
GO

这是个插入语句么??

是同时建立表加插入数据.
SQL77 2009-11-10
  • 打赏
  • 举报
回复
SF
快乐_石头 2009-11-10
  • 打赏
  • 举报
回复
等F姐

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧