摘要: 1 第一范式(1NF) 在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。简而言之,第一范式就是无重复的列。2 第二范式(2NF) 第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满... 阅读全文
posted @ 2012-12-25 17:31 盛开的雨季 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 要牢记3个泛式,我把3NF缩写让大家容易记忆:1,原子性(数据是不可以拆分的,比如1,2,3这样的就违背了1NF)2,关联性(所有字段必须和主键关联)3,非关联性(除主键关联外,其他字段之间不互相关联)数据库设计,要出图,关系型数据库,一定要把关系的线连起来,一幕了然.这样有利于团队合作.如果能出图,不出文档也可以.练习数据库设计,有一个好办法,就是随便拿一个别人数据库,迅速能把字段注释和关系图画出来.这个能力很重要,在实际工作中,迅速能接手别人的数据库项目. 阅读全文
posted @ 2012-12-25 16:49 盛开的雨季 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 当我们在用SQL Server数据库开发系统的时候,经常会遇到系统需要权限控制,然而根据权限的控制程度不同有不同的设计方案。1. 基于角色的权限设计这种方案是最常见也是比较简单的方案,不过通常有这种设计已经够了,所以微软就设计出这种方案的通用做法,这种方案对于每一个操作不做控制,只是在程序中根据角色对是否具有操作的权限进行控制;这里我们就不做详述2. 基于操作的权限设计这种模式下每一个操作都在数据库中有记录,用户是否拥有该操作的权限也在数据库中有记录,结构如下:但是如果直接使用上面的设计,会导致数据库中的UserAction这张表数据量非常大,所以我们需要进一步设计提高效率,请看方案33. 基 阅读全文
posted @ 2012-12-25 15:42 盛开的雨季 阅读(409) 评论(0) 推荐(0) 编辑
摘要: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf- 阅读全文
posted @ 2012-12-24 14:35 盛开的雨季 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 根据模块化的思想,将目录划分为html,css,image三大部分。css部分:(base.css、globa.css和mod文件夹)1、base.css放置的是reset,clearfix等基础类和工具类;2、globa.css放置的是布局样式,包括header,footer等样式;3、mod文件夹下面放置的模块,组件的样式;html部分:(mod文件夹和template文件夹)1、mod文件夹下面放的是模块的代码片段集合。如果有可能尽可能粒度划分的更细,因为这些都是代码片段,希望以后有工具做到代码片段和css的自动载入;2、template文件夹下面放的是产出物,其实就是一些模块的拼合。只 阅读全文
posted @ 2012-12-24 14:31 盛开的雨季 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 1.javascript的数组的操作//定义数组var pageIds = new Array();pageIds.push('A');数组长度pageIds.length;//shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefinedvar a = [1,2,3,4,5];var b = a.shift(); //a:[2,3,4,5] b:1//unshift:将参数添加到原数组开头,并返回数组的长度var a = [1,2,3,4,5];var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7//注 阅读全文
posted @ 2012-12-24 14:30 盛开的雨季 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 实现目标:公司组织架构与权限管理结合,粒度为数据行。到今天为止,权限的配置功能都已经写好了,但在对登录用户的权限判断上,还没有成型的设计。现在有一个想法:建立一个SuperForm,让所有WinForm都继承它;SuperForm里有个方法,是根据用户拥有的权限,然后把其子窗口中的增、删、查、改按扭进行授权,有权限的,按扭就可用,否则就不可用;子窗口的onLoad事件就调用父窗口中的这一方法来设置按扭的可用与否。这里有一个问题,就是每个子窗口的增、删、查、改按扭名字都不一样的,虽然目前我们的系统用的按扭都是自定义控件,其type都是可以控制的,但是如果是menu就比较难控制了。对于menu,似 阅读全文
posted @ 2012-12-21 11:43 盛开的雨季 阅读(1477) 评论(2) 推荐(3) 编辑
摘要: 直入正题,本文只谈思路,不谈具体代码及实现。后台的权限控制大概分为两类:1. 我能干什么2. 我能干哪些我能干什么,决定了我能做的操作是什么;我能干哪些,决定着在我有权做的情况下,我能对哪些对象进行操作。俗点的意思:你可以吃饭,但你不可以吃你旁边小朋友的,(这种情况是两类权限的交集)分别阐述:1. 能干什么在Web开发中,和服务器交互无非是 Post/Get 方法,以Get方法为例,我们在开发一个后台应用的时候,往往一个操作,就是一个URL(地址)。例子:PicManage?action=del&id=3,5,9 。 其实Post方法也一样,只不过url里看不见而已。一个人有没有这个操 阅读全文
posted @ 2012-12-21 11:41 盛开的雨季 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 针对这样的需求,版本一就无能为力了(当然你也可以增加几个功能:比如分类A的新闻起草和分类B的新闻起草,再把这个功能添加到相应的角色里面去,但是这个应该不是我们要得解决方案吧,不过版本二也是基于这个思想来解决的)。其实比新闻更好的例子是论坛板块的版主。下面是版本二的解决方案: 在版本二的功能表中加入了一个ResourceType这个字段,这个字段用来表示对某个资源的分类(比如新闻),我们同样来模拟一下(新闻分类A的ResourceType为:NTA,分类B为:NTB): 功能表: FunctionID ResourceType FunctionName F1 NTA 起草新闻:分类A F2 NT 阅读全文
posted @ 2012-12-20 17:37 盛开的雨季 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 在任何系统中,权限设计是最基础的东西,本文给出一个基于角色的权限设计的循序渐进的设计方案。 在权限系统中,功能(权限)是最小的单位,比如起草新闻、编辑新闻、审核新闻、删除新闻等,而角色是一类功能的集合,比如新闻编辑这个角色,他可能有起草新闻、编辑新闻等功能集合,而责任编辑他可能就有更多的权限,比如除了新闻编辑的功能,还有审核新闻、删除新闻等功能,给张三赋予新闻编辑的角色(其实我更愿意说把张三加入到新闻编辑这个角色中去),张三就可以起草新闻、编辑新闻了,给李四赋予责任编辑的角色,李四就可以起草新闻、编辑新闻、审核新闻、删除新闻了。 我们来看看版本一的解决方案: 我们来模拟一下上面的数据... 阅读全文
posted @ 2012-12-20 17:37 盛开的雨季 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 实现业务系统中的用户权限管理--设计篇 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的“非法用户”将会将他们彻底的“拒之门外”。下面就让我们一起了解一下如何设计可以满足大部分B/S系统中对用户功能权限控制的权限系统。需求陈述. 阅读全文
posted @ 2012-12-20 17:12 盛开的雨季 阅读(308) 评论(0) 推荐(0) 编辑
摘要: <!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>弹出层、弹窗效果+拖曳功能 </title><style type="text/css"> *{ margin:0px; padding:0px;} body{ font-size:12px; font:Arial, Helvetica, sans-se 阅读全文
posted @ 2012-12-19 17:34 盛开的雨季 阅读(482) 评论(0) 推荐(0) 编辑
摘要: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf- 阅读全文
posted @ 2012-12-19 17:31 盛开的雨季 阅读(537) 评论(0) 推荐(0) 编辑
摘要: View Code <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>设为首页的JS代码</title></head><body> <p>方法一:<span onclick="var strHref=window.location.href;this.style.behavior='url(#default#hom 阅读全文
posted @ 2012-12-19 17:15 盛开的雨季 阅读(581) 评论(0) 推荐(0) 编辑
摘要: 前台<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html x 阅读全文
posted @ 2012-12-19 16:42 盛开的雨季 阅读(311) 评论(0) 推荐(0) 编辑