代码改变世界

连续数字区间问题

2010-09-15 16:42 by 知行思新, 2119 阅读, 0 推荐, 收藏, 编辑
摘要:这个问题来自于某论坛的SQL Server板块,感觉也是比较典型的问题。在这里我把问题进行简化,并给出2种方案,作为备忘。 问题描述 有表Table_Num,如下: Num 4 5 6 10 11 12 13 20 通过一个查询返回连续数字区间,结果集如下: StartNum EndNum IntervalNums 4 6 3 10 13 4 20 20 1 解决方案1 其中where条件找... 阅读全文

文档版本管理系统 数据表设计

2010-09-12 11:14 by 知行思新, 5996 阅读, 11 推荐, 收藏, 编辑
摘要:最近一个朋友接手了一个项目,为自己部门开发文档版本管理系统。我在和他闲聊中,听他说起数据表设计时遇到的一个疑惑。听他说完后感觉这样的问题还是有一些普遍性的,在这里进行一下分享。 问题描述 文档版本管理最主要的是要维护文档的版本链。这很容易让人想到链表这种数据结构,所以我的那位朋友很快就给出了如下的表结构: 其中Docunment_PreId存放前一版本文档的Id,Docunment_NxtI... 阅读全文

SQL puzzles and answers读书笔记——酒店订房问题

2010-09-04 10:50 by 知行思新, 806 阅读, 1 推荐, 收藏, 编辑
摘要:问题描述 Hotel表记录了酒店订房的信息,创建Hotel表的脚本如下: 其中room_nbr为房间号,arrival_date为入住日期,departure_date为退房日期,guest_name为住客名。对于这张表已经加了主键约束primary key(room_nbr, arrival_date)和check约束departure_date >= arrival_date但这些还... 阅读全文

SQL puzzles and answers读书笔记——麻醉师计费问题

2010-08-30 21:55 by 知行思新, 919 阅读, 0 推荐, 收藏, 编辑
摘要:麻醉医师与外科医师工作方式的一个不同之处是:麻醉师在同一个时间段内能服务多个患者。 麻醉医师穿梭在不同的手术室,轮询检查患者的状况,调整麻醉剂量。如下为一麻醉疗程表: 其中:proc_id为麻醉疗程的ID,anest_name为麻醉师名,start_time为麻醉疗程的起始时间,end_time为麻醉疗程的结束时间。 麻醉师是按照每一个麻醉疗程来收费的。但每一个麻醉疗程的费用与最大同步疗程数相... 阅读全文

配送中心数据迁移项目(SDC to PDC Data Migartion)

2010-08-27 10:57 by 知行思新, 2802 阅读, 1 推荐, 收藏, 编辑
摘要:最近一直在忙公司里的SDC to PDC Data Migartion项目。原来服务亚太区业务的新加坡物流配送中心要迁移到马来西亚槟城。信息系统中的不少数据需要配合这次迁移做相应的修改,涉及销售订单(Sales Order)、采购订单(Purchase Order)和库存(Inventory)。在与商务分析员的讨论后,我们的方案中有很大一部分数据修改需要在数据库端写脚本完成。前段时间一直在讨论方案... 阅读全文

SQL puzzles and answers读书笔记——财年表

2010-08-16 22:10 by 知行思新, 1041 阅读, 1 推荐, 收藏, 编辑
摘要:最近开始阅读数据库大师Joe Celko的《SQL PUZZLES AND ANSWERS》一书。这本书每篇都是一个SQL谜题,涉及数据库设计、开发。我看的是英文第二版,在这里做个读书笔记,顺便用T-SQL和PL/SQL来实现其中的代码。 谜题1——财年表 我们首先来创建一张表(以下代码在SQL Server 2008和Oracle上都能运行通过): 这张表存储了每个财年的起始日期和结束日期... 阅读全文

SQL Server性能调优——报表数据库与业务数据库分离

2010-08-04 08:05 by 知行思新, 5135 阅读, 8 推荐, 收藏, 编辑
摘要:前段时间把公司的主数据库切了,分成业务库和报表库,业务库向报表库进行实时的Replication。这个项目的上线提升了系统的性能和可维护性,现在把设计时的考量和所做的工作重新回顾一下,作为备忘。项目起源在日常的开发过程中,功能总是先于性能被考虑。只有当用户抱怨系统性能时,我们才开始头痛医头,脚痛医脚地来解决这些性能问题。公司的CRM和ERP系统叫作Olite,完全是我们组开发的。从无到有,功能不断... 阅读全文

SQL笔试题——生成日期列表

2010-07-27 09:26 by 知行思新, 2899 阅读, 0 推荐, 收藏, 编辑
摘要:最近做了一份SQL笔试题,总共包括十多道题,其中最后一道题是要写一个存储过程,输入为startDate和endDate,输出为一个日期列表。 eg:如果startDate=‘2010-01-01’,endDate=’2010-02-01’,则输出为 date 2010-01-01 2010-01-02 2010-01-03 … … 2010-01-29 2010-01-30 2010-01-31... 阅读全文

电影院票务管理系统数据库设计(2)

2010-07-26 11:37 by 知行思新, 7821 阅读, 1 推荐, 收藏, 编辑
摘要:在电影院票务管理系统数据库设计(1)中我们从一道面试题展开,最后给出如下影院票务管理系统的表关系图 以上的设计是否易用? 首先想一下订票最简单的过程,不包括意外情况。 顾客先来到柜台,跟柜台服务员说要买哪场电影的哪几个空位的票 服务员创建一个订单(在Table_OrderHead中插入一条记录) 若顾客为会员,刷会员卡(Update Table_OrderHead中的Customer_ID的值) ... 阅读全文

电影院票务管理系统数据库设计(1)

2010-07-21 08:57 by 知行思新, 13351 阅读, 3 推荐, 收藏, 编辑
摘要:这两天听到一道面试题:设计一个电影院票务管理系统的表结构。 挺有意思的,我自己也试着做了一做,感觉还是有不少收获的。在本文中我想把做这道题的整个思路重新理一下,也算做个整理了。   现在能得到的需求只有一个:设计一个电影院票务管理系统的表结构。再没有其他信息了,可能真的面试的时候面试官还会给出其他业务需求,但我这里没有。 所以我只能猜测可能的业务需求会有哪些。 最初想到的: ... 阅读全文