数据库建模规范
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用于一 SP_ORG Opt 些特殊 过程处 理的存 贮过程
SP_ORGRpt_GetEmployeeSalaryInfo SP_ORGOpt_SetSystemMessage
5.2.2. 设计规范
在存贮过程中必须说明以下内容: 目的:说明此存贮过程的作用。 创建者:首次创建此存贮过程的人的姓名。在此请使用中 文全名,不允许使用英文简称。 修改者、修改日期、修改原因:如果有人对此存贮过程进 行了修改,则必须在此存贮过程的前面加注修改者姓名、 修改日期及修改原因。 对存贮过程各参数及变量的中文注解。
5. 规范内容
5.1. 数据库表及字段命名、设计规范
5.1.1. 数据库表数据库表的命名必须遵循以下
规范:
表的前缀必须是系统英文名称或模块英文名的缩写(大 写)。如果系统功能简单,没有划分为模块,则可以以系 统英文名称的缩写(大写)作为前缀,否则以各模块的英 文名称缩写(大写)作为前缀。 例如:
如果有一个模块叫做ORG(缩写为ORG),那末你的数据库中 的所有对象的名称都要加上这个前缀:ORG_ + 数据库对 象名称,ORG_CstInfo标示组织结构模块中的客户信息表 表的名称必须是易于理解,能表达表的功能的英文单词或 缩写英文单词,无论是完整英文单词还是缩写英文单词, 单词首字母必须大写。如果当前表可用一个英文单词表示 的,请用完整的英文单词来表示;例如:系统资料中的客 户表的表名可命名为:SYS_Customer。如果当前表需用 两个或两个以上的单词来表示时,可采用两个英文单词的 缩写形式;例如:系统资料中的客户物料表可命名为: SYS_CustItem。 表名称不得超过三个英文单词。 在命名表时,用单数形式表示名称。例如,使用 Employee,而不是 Employees。 对于有主明细的表来说。明细表的名称为:主表的名称 + 字符Sub。例如:采购定单的名称为:PCHS_Order,则采 购定单的明细表为:PCHS_OrderSub
AS Declare @optlog_opteratename nvarchar(200) /* 存贮操作人*/ Declare @optlog_idea nvarchar(4000) /* 存贮操作意见*/ Declare @optlog_time nvarchar(20)/*操作时间*/
5.3. 视图命名规范
需要一个内码来唯一标识一笔客户信息。则此内码字 段为:CustomerGUID;请注意,此内码与给每个客户 一个客户编号CustomerID有区别。 系统中属于是业务范围内的编号的字段,其代表一定 的业务信息,这样的字段建议命名为: 代表当前这字段含意的英文单词 + “ID”;例如:职工编号 EmployeeID;客户编号:CustomerID;货料编号:ItemID 等等。 采用表前缀。如果多个表中存在很多同类型的字段, 比如FirstName,要在这个字段的名字加上表前缀,比 如这样:CustFirstName,这样才不至于在做视图的时 候还要重新为这个字段指定别名(因为其他表很可能 同样存在一个叫做FirstName的字段)。 外关键字段的命名为:字母 F + 引用的主关键字段的 名称。例如:在客户资料表Customer中有一个主关键 字段:CustomerID;则在定单表Order表中有一个外关 键字段客户编号的命名为:FCustomerID。 在命名表的列时,不要重复表的名称;例如,在名为 Employee 的表中避免使用名为 EmployeeLastName 的 字段。
其中: 1 区域表示字段的在页面中将要显示的标题。 2 区域表示对此字段进行的一些说明或备注信息。 3 区域表示此字段是否需要选择输入。如果不选择输 入,则此区域值为0,否则此区域的值应为在系统 中定义的资料编号。
示例图如下:
系统中将定义一个存贮各资料对应编号的表: COMM_InfoToID
InfoID InfoName
尽量遵守第三范式的标准(3NF)。 表内的每一个值只能被表达一次 表内的每一行都应当被唯一的标示 表内不应该存储依赖于其他键的非键信息
设计规范 所有字段在设计时,除以下数据类型timestamp、 image、datetime、smalldatetime、uniqueidentifier、 binary、sql_variant、binary 、varbinary外,必须有默 认值。字符型的默认值为一个空字符值串’’;数值型 的默认值为数值0;逻辑型的默认值为数值0; 其中:系统中所有逻辑型中数值0表示为“假”;数值1
UseMethod
001 职员信息 GetEmployeeInfo(controlID,EmployeeID)
002 公司信息 GetCompanyInfo(controlID,CompanyID)
……. …….
…….
5.2. 存贮过程命名及设计规范
5.2.1. 命名规范
存贮过程的命名请遵循以下命名规范:SP_ + 系统模块缩写(大 写) + 功能标识 + 代表存贮过程 操作的表名(不带前缀)或功能的英文单词或英文单词缩写。 如果一个存贮过程只对一个表进行操作,建议存贮过程的名称就 用存贮过程所操作的表的表名(不 带前缀)。这样有利于根据表名找到相应的存贮过程。 为了在众多的存贮过程中能很快的找到并维护存贮过程,我们按 存贮过程的作用将系统的存贮过程 进行以下的分类及命名:(以下示例假设存贮过程所在的模块名 为ORG)
作用
第一前 缀
第二 前缀 名 (功能 标识)
示例
用于新 SP_ORG Add 增有存 贮过程
SP_ORGAdd_EmployLeabharlann Baidue
用于修 SP_ORG Upt 改的存 贮过程
SP_ORGUpt_Employee
用于单 SP_ORG Qry SP_ORGQry_Employee 据查询
的存贮 过程
用于报 SP_ORG Rpt 表统计 的存贮 过程
数据库建模规范
制作: 发布日期:
审核:
批准:
欧索软件有限公司
OCEANSOFT INFORMATION SYSTEM CO., LTD
修订历史记录
日期
版本
说明
2004年10月9 <1.0> 第四次内部发布 日
作者 SEPG组
1. 目的
为了保证软件开发中心所开发出的软件数据库符合相同的设计及命 名规范,且保证各项目数据库不冲突而建立的数据库建模规范。
作用
第一前 缀
第二 前缀 名 (功能 标识)
示例
用于单 据查询 的视图
V_ORG Qry
V_ORGQry_Employee
用于报 表统计 的视图
V_ORG Rpt
V_ORGRpt_GetEmployeeSalaryInfo
用于一 些特殊 过程处 理的视 图
V_ORG Opt
V_ORGOpt_GetSystemMessage
示例如下: /*
目的:查询公街门面,立面装修改造审批审批 创建:王小林 时间:2002-5-23 修改者:李小龙 修改日期:2002-10-12 修改原因及内容: 客户不需要活动内容字段,将活动内容字段去掉。 修改者:王永发 修改日期:2002-10-19 修改原因及内容: 增加一个申请地点字段。 */ CREATE PROCEDURE dbo.SP_ORGRptJcStreetLampShp @whereat nvarchar(4000), /* 接收传入的where子句,包 括'where’关键字*/ @flowbillid nvarchar(4000) /* 接收传入的工作流的单据编号*/
表示为“真”。 datetime、smalldatetime类型的字段没有默认值,必须为 空。
每个单据主表中(系统表除外),应都有以下字段:
字段名
说明
类型
默认值
CreatorGUID 创建者
varchar(40)
无
CreatedTime 创建时间 Datetime
空
如果系统支持多组织、多部门,则可依据系统的需要在每 个单据主表中增加以下字段:
示例如下: /*
目的:查询公街门面,立面装修改造审批审批 创建:王小林 时间:2002-5-23 修改者:李小龙 修改日期:2002-10-12 修改原因及内容: 客户不需要活动内容字段,将活动内容字段去掉。 修改者:王永发 修改日期:2002-10-19 修改原因及内容: 增加一个申请地点字段。 */ CREATE VIEW dbo.sp_zflocaldecide AS SELECT BillID AS 单据编号, ChargeSheetID AS 案件编号, PrivyName AS 当事人, FictitiousPerson AS 法人, CheckDate AS 检查日期, Place AS 检 查地点, Job AS 从事工作, Law AS 违反规定, According AS 法律依据, Money AS 罚款, CheckPerson AS 检查人, Tipstaff AS 执法人员, DecideDate AS 处罚日期, Creator AS 创建者, CreatedTime AS 创建日期, Modifier AS 修改 者, ModifiedTime AS 修改日期 FROM dbo.ZfLocaleDecide
2. 范围
适用于软件开发中心所有的软件开发工作。
3. 定义
定义:无
4. 职责
开发中心所有开发人员必须按照此规范进行系统的数据库建 模工作,项目经理职责对项目的数据库建模进行监督、检 查。 测试人员在进行程序验收时,必须按照此规范进行程序的验 收工作,对不按照此规范进行数据库建模的相应的开发人 员,将进行过失单处罚,并通知相应的项目经理。 开发中心所有人员如对数据库建模规范有异议,可提请开发 中心总监讨论同意后修改此规范,以按照新规范进行开发工 作。
字段名
说明
类型
默认值
InDeptGUID 所属部门 varchar(40) 无
InCompGUID 所属单位 varchar(40) 无
字段的设计 数据库中每个字段的描述(Description)可分为以下部分:
①区域
②区域
字段所代表的业务名 字段的备注 称(标题)
各区域间用竖线“|”隔开。
③区域
字段要选择的信息 编号
5.1.2. 表字段
命名规范 数据库字段的命名必须遵循以下规范:
采用有意义的字段名。字段的名称必须是易于理解, 能表达字段功能的英文单词或缩写英文单词,无论是 完整英文单词还是缩写英文单词,单词首字母必须大 写。如果当前字段可用一个英文单词表示的,请用完 整的英文单词来表示;例如:系统资料中的客户表中 的客户地址名可命名为:Address。如果当前字段需用 两个或两个以上的单词来表示时,可采用两个英文单 词的缩写形式。 建议尽量用完整英文单词来命名字段名称。 字段名称不得超过三个英文单词。 系统中所有属于内码字段,其应不代表任何业务字段 信息。系统建议采用全球唯一号GUID(从程序界面中 获得并存贮)。字段名称为:代表当前表的英文单词 + “GUID”;数据类型为varchar(40)。例如在客户资料中
5.3.2. 设计规范
在存贮过程中必须说明以下内容: 目的:说明此存贮过程的作用。 创建者:首次创建此存贮过程的人的姓名。在此请使用中 文全名,不允许使用英文简称。 修改者、修改日期、修改原因:如果有人对此存贮过程进 行了修改,则必须在此存贮过程的前面加注修改者姓名、 修改日期及修改原因。 对存贮过程各参数及变量的中文注解。
5.3.1. 命名规范
视图的命名请遵循以下命名规范:V_ + 系统模块缩写(大写) + 功能标识 + 代表存贮过程
操作的表名(不带前缀)或功能的英文单词或英文单词缩写。 如果一个视图只对一个表进行操作,建议视图的名称就用视图所 使用的表的表名(不 带前缀)。这样有利于根据表名找到相应的视图。 为了在众多的存贮过程中能很快的找到并维护存贮过程,我们按 存贮过程的作用将系统的存贮过程 进行以下的分类及命名:(以下示例假设存贮过程所在的模块名 为ORG)
SP_ORGRpt_GetEmployeeSalaryInfo SP_ORGOpt_SetSystemMessage
5.2.2. 设计规范
在存贮过程中必须说明以下内容: 目的:说明此存贮过程的作用。 创建者:首次创建此存贮过程的人的姓名。在此请使用中 文全名,不允许使用英文简称。 修改者、修改日期、修改原因:如果有人对此存贮过程进 行了修改,则必须在此存贮过程的前面加注修改者姓名、 修改日期及修改原因。 对存贮过程各参数及变量的中文注解。
5. 规范内容
5.1. 数据库表及字段命名、设计规范
5.1.1. 数据库表数据库表的命名必须遵循以下
规范:
表的前缀必须是系统英文名称或模块英文名的缩写(大 写)。如果系统功能简单,没有划分为模块,则可以以系 统英文名称的缩写(大写)作为前缀,否则以各模块的英 文名称缩写(大写)作为前缀。 例如:
如果有一个模块叫做ORG(缩写为ORG),那末你的数据库中 的所有对象的名称都要加上这个前缀:ORG_ + 数据库对 象名称,ORG_CstInfo标示组织结构模块中的客户信息表 表的名称必须是易于理解,能表达表的功能的英文单词或 缩写英文单词,无论是完整英文单词还是缩写英文单词, 单词首字母必须大写。如果当前表可用一个英文单词表示 的,请用完整的英文单词来表示;例如:系统资料中的客 户表的表名可命名为:SYS_Customer。如果当前表需用 两个或两个以上的单词来表示时,可采用两个英文单词的 缩写形式;例如:系统资料中的客户物料表可命名为: SYS_CustItem。 表名称不得超过三个英文单词。 在命名表时,用单数形式表示名称。例如,使用 Employee,而不是 Employees。 对于有主明细的表来说。明细表的名称为:主表的名称 + 字符Sub。例如:采购定单的名称为:PCHS_Order,则采 购定单的明细表为:PCHS_OrderSub
AS Declare @optlog_opteratename nvarchar(200) /* 存贮操作人*/ Declare @optlog_idea nvarchar(4000) /* 存贮操作意见*/ Declare @optlog_time nvarchar(20)/*操作时间*/
5.3. 视图命名规范
需要一个内码来唯一标识一笔客户信息。则此内码字 段为:CustomerGUID;请注意,此内码与给每个客户 一个客户编号CustomerID有区别。 系统中属于是业务范围内的编号的字段,其代表一定 的业务信息,这样的字段建议命名为: 代表当前这字段含意的英文单词 + “ID”;例如:职工编号 EmployeeID;客户编号:CustomerID;货料编号:ItemID 等等。 采用表前缀。如果多个表中存在很多同类型的字段, 比如FirstName,要在这个字段的名字加上表前缀,比 如这样:CustFirstName,这样才不至于在做视图的时 候还要重新为这个字段指定别名(因为其他表很可能 同样存在一个叫做FirstName的字段)。 外关键字段的命名为:字母 F + 引用的主关键字段的 名称。例如:在客户资料表Customer中有一个主关键 字段:CustomerID;则在定单表Order表中有一个外关 键字段客户编号的命名为:FCustomerID。 在命名表的列时,不要重复表的名称;例如,在名为 Employee 的表中避免使用名为 EmployeeLastName 的 字段。
其中: 1 区域表示字段的在页面中将要显示的标题。 2 区域表示对此字段进行的一些说明或备注信息。 3 区域表示此字段是否需要选择输入。如果不选择输 入,则此区域值为0,否则此区域的值应为在系统 中定义的资料编号。
示例图如下:
系统中将定义一个存贮各资料对应编号的表: COMM_InfoToID
InfoID InfoName
尽量遵守第三范式的标准(3NF)。 表内的每一个值只能被表达一次 表内的每一行都应当被唯一的标示 表内不应该存储依赖于其他键的非键信息
设计规范 所有字段在设计时,除以下数据类型timestamp、 image、datetime、smalldatetime、uniqueidentifier、 binary、sql_variant、binary 、varbinary外,必须有默 认值。字符型的默认值为一个空字符值串’’;数值型 的默认值为数值0;逻辑型的默认值为数值0; 其中:系统中所有逻辑型中数值0表示为“假”;数值1
UseMethod
001 职员信息 GetEmployeeInfo(controlID,EmployeeID)
002 公司信息 GetCompanyInfo(controlID,CompanyID)
……. …….
…….
5.2. 存贮过程命名及设计规范
5.2.1. 命名规范
存贮过程的命名请遵循以下命名规范:SP_ + 系统模块缩写(大 写) + 功能标识 + 代表存贮过程 操作的表名(不带前缀)或功能的英文单词或英文单词缩写。 如果一个存贮过程只对一个表进行操作,建议存贮过程的名称就 用存贮过程所操作的表的表名(不 带前缀)。这样有利于根据表名找到相应的存贮过程。 为了在众多的存贮过程中能很快的找到并维护存贮过程,我们按 存贮过程的作用将系统的存贮过程 进行以下的分类及命名:(以下示例假设存贮过程所在的模块名 为ORG)
作用
第一前 缀
第二 前缀 名 (功能 标识)
示例
用于新 SP_ORG Add 增有存 贮过程
SP_ORGAdd_EmployLeabharlann Baidue
用于修 SP_ORG Upt 改的存 贮过程
SP_ORGUpt_Employee
用于单 SP_ORG Qry SP_ORGQry_Employee 据查询
的存贮 过程
用于报 SP_ORG Rpt 表统计 的存贮 过程
数据库建模规范
制作: 发布日期:
审核:
批准:
欧索软件有限公司
OCEANSOFT INFORMATION SYSTEM CO., LTD
修订历史记录
日期
版本
说明
2004年10月9 <1.0> 第四次内部发布 日
作者 SEPG组
1. 目的
为了保证软件开发中心所开发出的软件数据库符合相同的设计及命 名规范,且保证各项目数据库不冲突而建立的数据库建模规范。
作用
第一前 缀
第二 前缀 名 (功能 标识)
示例
用于单 据查询 的视图
V_ORG Qry
V_ORGQry_Employee
用于报 表统计 的视图
V_ORG Rpt
V_ORGRpt_GetEmployeeSalaryInfo
用于一 些特殊 过程处 理的视 图
V_ORG Opt
V_ORGOpt_GetSystemMessage
示例如下: /*
目的:查询公街门面,立面装修改造审批审批 创建:王小林 时间:2002-5-23 修改者:李小龙 修改日期:2002-10-12 修改原因及内容: 客户不需要活动内容字段,将活动内容字段去掉。 修改者:王永发 修改日期:2002-10-19 修改原因及内容: 增加一个申请地点字段。 */ CREATE PROCEDURE dbo.SP_ORGRptJcStreetLampShp @whereat nvarchar(4000), /* 接收传入的where子句,包 括'where’关键字*/ @flowbillid nvarchar(4000) /* 接收传入的工作流的单据编号*/
表示为“真”。 datetime、smalldatetime类型的字段没有默认值,必须为 空。
每个单据主表中(系统表除外),应都有以下字段:
字段名
说明
类型
默认值
CreatorGUID 创建者
varchar(40)
无
CreatedTime 创建时间 Datetime
空
如果系统支持多组织、多部门,则可依据系统的需要在每 个单据主表中增加以下字段:
示例如下: /*
目的:查询公街门面,立面装修改造审批审批 创建:王小林 时间:2002-5-23 修改者:李小龙 修改日期:2002-10-12 修改原因及内容: 客户不需要活动内容字段,将活动内容字段去掉。 修改者:王永发 修改日期:2002-10-19 修改原因及内容: 增加一个申请地点字段。 */ CREATE VIEW dbo.sp_zflocaldecide AS SELECT BillID AS 单据编号, ChargeSheetID AS 案件编号, PrivyName AS 当事人, FictitiousPerson AS 法人, CheckDate AS 检查日期, Place AS 检 查地点, Job AS 从事工作, Law AS 违反规定, According AS 法律依据, Money AS 罚款, CheckPerson AS 检查人, Tipstaff AS 执法人员, DecideDate AS 处罚日期, Creator AS 创建者, CreatedTime AS 创建日期, Modifier AS 修改 者, ModifiedTime AS 修改日期 FROM dbo.ZfLocaleDecide
2. 范围
适用于软件开发中心所有的软件开发工作。
3. 定义
定义:无
4. 职责
开发中心所有开发人员必须按照此规范进行系统的数据库建 模工作,项目经理职责对项目的数据库建模进行监督、检 查。 测试人员在进行程序验收时,必须按照此规范进行程序的验 收工作,对不按照此规范进行数据库建模的相应的开发人 员,将进行过失单处罚,并通知相应的项目经理。 开发中心所有人员如对数据库建模规范有异议,可提请开发 中心总监讨论同意后修改此规范,以按照新规范进行开发工 作。
字段名
说明
类型
默认值
InDeptGUID 所属部门 varchar(40) 无
InCompGUID 所属单位 varchar(40) 无
字段的设计 数据库中每个字段的描述(Description)可分为以下部分:
①区域
②区域
字段所代表的业务名 字段的备注 称(标题)
各区域间用竖线“|”隔开。
③区域
字段要选择的信息 编号
5.1.2. 表字段
命名规范 数据库字段的命名必须遵循以下规范:
采用有意义的字段名。字段的名称必须是易于理解, 能表达字段功能的英文单词或缩写英文单词,无论是 完整英文单词还是缩写英文单词,单词首字母必须大 写。如果当前字段可用一个英文单词表示的,请用完 整的英文单词来表示;例如:系统资料中的客户表中 的客户地址名可命名为:Address。如果当前字段需用 两个或两个以上的单词来表示时,可采用两个英文单 词的缩写形式。 建议尽量用完整英文单词来命名字段名称。 字段名称不得超过三个英文单词。 系统中所有属于内码字段,其应不代表任何业务字段 信息。系统建议采用全球唯一号GUID(从程序界面中 获得并存贮)。字段名称为:代表当前表的英文单词 + “GUID”;数据类型为varchar(40)。例如在客户资料中
5.3.2. 设计规范
在存贮过程中必须说明以下内容: 目的:说明此存贮过程的作用。 创建者:首次创建此存贮过程的人的姓名。在此请使用中 文全名,不允许使用英文简称。 修改者、修改日期、修改原因:如果有人对此存贮过程进 行了修改,则必须在此存贮过程的前面加注修改者姓名、 修改日期及修改原因。 对存贮过程各参数及变量的中文注解。
5.3.1. 命名规范
视图的命名请遵循以下命名规范:V_ + 系统模块缩写(大写) + 功能标识 + 代表存贮过程
操作的表名(不带前缀)或功能的英文单词或英文单词缩写。 如果一个视图只对一个表进行操作,建议视图的名称就用视图所 使用的表的表名(不 带前缀)。这样有利于根据表名找到相应的视图。 为了在众多的存贮过程中能很快的找到并维护存贮过程,我们按 存贮过程的作用将系统的存贮过程 进行以下的分类及命名:(以下示例假设存贮过程所在的模块名 为ORG)