随笔分类 -  SqlServer

摘要:上一节我说数据库设计有一块硬伤,到底在哪儿?先看下图:看上图中有什么地方是相同的?“品牌”→“三星”在手机数码分类里面有,在电脑办公分类里面也有,这有什么问题?再来看看上篇中的那个关系图:再看数据库中存储的数据,首先是(T_FilterCategory表)如下(T_FilterAttributes表)如下(T_FilterCategory与T_FilterAttributes之间的关联表)如上图,既然“品牌”→“三星”在手机数码分类里面有,在电脑办公分类里面也有,那么如果只是像上面这个关联表这么保存筛选条件和筛选条件值,我如何区分哪个是手机数码下的“品牌”→“三星”,哪个是电脑办公分类下的“品 阅读全文
posted @ 2012-03-07 12:22 Ajaxc 阅读(913) 评论(0) 推荐(1)
摘要:如果你有一个一对多的关系,您想对两个表执行Join,但你只想要将每一个“一对多”关系的中产生一行,你可以参考下面:一个很容易理解的例子,比如博客园的随笔(Post)和评论(comment)两个表,如下图:如果你想获取随笔的ID, Title 和 一个评论的ID, 内容的话,有以下两个方案:方案一:方案二:第一个方案在有很少随笔,但是每个随笔有很多评论的情况下更优;第二个方案在随笔数目多,但是每个随笔的评论较少的情况下更优;大家可以想想原因。本文来自喜乐的ASP.NET(Alex Song) 阅读全文
posted @ 2012-03-02 11:27 Ajaxc 阅读(619) 评论(0) 推荐(0)
摘要:下面的语句显示中文年月 select getdate() as 日期,case month(getdate()) when 11 then '十一' when 12 then '十二' else substring('一二三四五六七八九十', month(getdate()),1) end+'月' as 月份 CASE 可能是 SQL 中被误用最多的关键字之一。虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法。例如,你可以在WHERE 子句中使用 CASE。 首先让我们看一下CASE 的语... 阅读全文
posted @ 2011-12-28 22:04 Ajaxc 阅读(336) 评论(0) 推荐(1)