数据库设计规范Word格式文档下载.docx
《数据库设计规范Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据库设计规范Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
NUMBER(16,2)
●涉及税率、比例、分成的数值:
NUMBER(10,6)
●涉及货物单价的数值:
NUMBER(16,6)
●涉及人数的数值:
NUMBER(10)
●涉及人名的:
VARCHAR2(50)
●涉及单位名称、地址的:
VARCHAR2(100)
●涉及说明、理由、意见的:
VARCHAR2(200)
●optr_code,建议在业务表中增加该字段,表示操作员工号;
●opt_date,建议在业务表中增加该字段,表示操作时间;
●remark,建议在业务表中增加该字段,作为备用字段;
●stand,建议在业务表中增加该字段,作为备注;
●描述“是、否”类型的字段命名,避免使用“IS_”开头。
3命名规范
3.1数据库命名规则
数据库命名规则如下:
项目简称+1位数据库类型代码+识别代码+序号
数据库类型代码:
1)T:
业务型数据库
2)A:
分析型数据库
3)H:
历史数据库
识别代码:
1)DEV:
开发数据库
2)TEST:
测试数据库
如果一种类型的数据库一个数据库,则不加序号,否则末尾增加序号。
如果是生产库则不加识别代码,否则需要增加爱识别代码DEV或TEST
如果只作历史库,部分生产、开发或者测试,则只需要项目简称+H+序号
举例:
出入系统业务生产库:
AOCT、AOCT1、AOCT2
出入系统业务开发库:
AOCTDEV、AOCTDEV1、AOCTDEV2
出入系统业务测试库:
AOCTTEST、AOCTTEST1、AOCTTEST2
3.2数据库对象命名的一般原则
数据库对象的命名应该以最少的字母达到最容易理解的意义。
如果没有特殊规定,数据库对象及其属性的命名应满足如下条件:
1)命名不推荐使用保留字;
2)数据库实体统一采用英文命名;
3)对象命名长度最好不要超过18个字符,缩写要易于理解,符合通用的习惯,例如部门编码缩写:
dept_code,组织机构编码缩写:
org_code。
4)前导字符为A至Z
5)非前导字符可以为:
●A至Z
●0至9
●_(下划线字符)
3.3表空间(Tablespace)命名规则
1)表空间
●表空间的描述规则统一为:
TS_业务规则。
●例如:
TS_CRM等
2)临时表空间
临时表空间的描述规则统一为:
TS_TMP_业务规则。
3.4表(Table)命名规则
1)业务数据库中的数据表
命名规则:
子系统简称_业务含义
2)分析型数据库中的数据表
操作型数据存储区中的数据表:
ODS_业务规则。
事实表:
FACT_业务规则。
维表数据:
DIM_业务规则。
中间表:
MID_业务规则。
3.5字段命名规则
1)主键与外键必须使用相同的字段名和数据类型(含数据精度);
尽量少使用联合主键;
主键的命名有一定的含义,不要只写成“ID”之类的字段名;
主键的生成规则有一定的含义,比如前缀+流水号规则,不要使用自增主键,不要使用数字类型。
2)凡与业务含义无关的主键一律加_ID后缀。
如PARTY_ID;
3)凡是具有业务含义的编码(或代码)等字段一律加_CODE后缀。
如PARTY_CODE;
4)凡是名称、姓名等字段一律加_NAME后缀。
如PARTY_NAME;
3.6视图(View)命名规则
V_子系统简称_业务含义。
3.7序列(Sequence)命名规则
SEQ_表名。
3.8存储过程(Procedure)的命名规则
P_子系统简称_业务含义。
3.9函数(Function)的命名规则
F_子系统简称_业务含义。
3.10索引(Index)命名规范
IDX_表名_有关字段。
不允许使用自动生成的索引。
3.11约束(Constraint)命名规范
主键(PrimaryKeyConstraint):
PK_表名,需要考虑主键长度太长无法创建的情况,表名部分要尽量简化且易于区分。
外键(ForeignKeyConstraint):
FK_表名_字段_被参照(referenced)表名,需要考虑外键长度太长无法创建的情况,表名部分要尽量简化且易于区分。
4数据模型产出物规范
1)PDM文件
数据模型产出物统一为PDM文件。
各个项目根据情况,可以区分概念模型和物理模型;
2)XML文件
数据模型需要产出相应的XML文件,通过PDM进行转换,具体xml使用说明参照附录A。
3)建表脚本
数据库的建表脚本作为数据库设计的规范产出物,需要严格进行版本控制,有统一的命名规范,命名规范如下:
●创建表脚本:
项目简称_create_table.sql。
●修改表脚本:
项目简称_alter_table.sql,在原有表的基础上做的修改,增加字段、主键、外键、索引等。
●创建存储过程脚本:
项目简称_create_prc.sql,所有涉及存储过程的创建和修改,必须实时更新此文件。
●创建函数脚本:
项目简称_create_fun.sql,所有涉及函数的创建和修改,必须实时更新此文件。
●创建视图脚本:
项目简称_create_view.sql,所有涉及视图的创建和修改,必须实时更新此文件,并且如果在PDM文件中有视图的创建,需要更新PDM文件。
注:
修改表脚本只作为备忘,所有表结构的修改,都必须实时更新“PDM文件”和“创建表脚本”,便于项目实施时表结构的导入。
附录A:
xml文件使用说明
表结构设计文件是指在进行表,视图,以及约束的设计过程中所产生的文件。
格式:
xml文件
✧<
?
xml-stylesheettype=“text/xsl”href=“ui/TL_Schema.xsl”?
>
!
DOCTYPEapp-dataSYSTEM“ui/TL_Schema.dtd”>
上面两行格式固定,主要用于数据结构的列表展示,每一个表结构文件都要引用
app-data>
文件根节点
database>
文件二级节点,下面允许有多个<
module>
元素
modulename=“DEPLOY”chineseDescription=“基础信息维护”>
✧文件三级节点,指项目设计中的模块,name和chineseDescription必须维护。
下面允许有多个<
submodule>
节点。
submodulename=“BASE_SOURCE”chineseDescription=“基础信息”>
文件四级节点,指项目设计中的模块,name和chineseDescription必须维护。
下面允许有多个<
table>
节点
tablename=“DEPLOY_MACHINE”chineseDescription=“主机信息”pkg=“com.tl.deploy.machine”jspPath=“com/tenglong/deploy/machine”function1=“all”>
表定义节点,下面允许有多个<
rem>
<
column>
foreign-key>
index>
✓属性name指代表的英文名称,
✓属性chineseDescription指表的中文名称。
✓属性pkg指由表结构自动生成的java类所在包路径。
✓属性jspPath指由表结构自动生成的jsp文件在所路径
✓属性function=“all”指生成增删改查
✓属性head=“TABLE_NAME”指当前表的主表名称
✓属性line=“TABLE_NAME”指当前表的细表名称
表注释元素,用来对表的功能,修改信息做出描述<
/rem>
columnname=“PID”primaryKey=“true”required=“true”type=“VARCHAR”size=“32”chineseDescription=“内码”queryShow=“true”searchShow=“true”updateShow=“false”insertShow=“true”detailShow=“true”/>
表的列元素。
✓属性name指代字段的英文名称(即字段名)
✓primaryKey=“true”用来标识当前列为主键列
✓required=“true”用来标识当前列是否允许为空
✓type=“VARCHAR”用来标识当前列的字段类型定义
✓size=“10”用来标识当前列的字段长度
✓chineseDescription=“内码”用来标识当前列的字段中文名称
✓queryShow=“true”标识列中在查询列表中是否显示
✓searchShow=“true”标识列中在查询条件中是否显示
✓updateShow=““标识列中在修改页面中是否显示
✓insertShow=“true”标识该列在插入页面中是否显示
✓detailShow=“true”标识该列在明细页面中是滞显示
✓enumValue=“1:
JSP,2:
CLASS”标识该列允许的选择值及代表意义。
foreign-keyforeignTable="
DEPLOY_TASK"
标识外键引用,允许<
reference>
子节点
referencelocal="
TID"
foreign="
/>
本节点主要是把当前表字段与引用表字段根据字段名关联起来
附录B:
保留关键字
对象命名不允许使用的关键字:
ABSOLUTE
INDICATOR
SYSTEM_USER
AUXILIARY
INITIALIZE
TABLE
BUFFERPOOL
ACTION
INITIALLY
TEMPORARY
CALLED
ADA
INNER
TERMINATE
CAPTURE
ADD
INOUT
TEXTSIZE
CCSID
ADMIN
INPUT
THAN
CLUSTER
AFTER
INSENSITIVE
THEN
COLLECTION
AGGREGATE
INSERT
TIME
COLLID
ALIAS
INT
TIMESTAMP
COMMENT
ALL
INTEGER
TIMEZONE_HOUR
CONCAT
ALLOCATE
INTERSECT
TIMEZONE_MINUTE
CONDITION
ALTER
INTERVAL
TO
COUNT_BIG
AND
INTO
TOP
CURRENT_LC_PATH
ANY
IS
TRAILING
CURRENT_SERVER
ARE
ISOLATION
TRAN
CURRENT_TIMEZONE
ARRAY
ITERATE
TRANSACTION
DAYS
AS
JOIN
TRANSLATE
DB2GENERAL
ASC
KEY
TRANSLATION
DB2SQL
ASSERTION
KILL
TREAT
DBA
AT
LANGUAGE
TRIGGER
DBINFO
AUTHORIZATION
LARGE
TRIM
DBSPACE
AVG
LAST
TRUNCATE
DISALLOW
BACKUP
LATERAL
TSEQUAL
DO
BEFORE
LEADING
UNDER
DSSIZE
BEGIN
LEFT
UNION
EDITPROC
BETWEEN
LESS
UNIQUE
ELSEIF
BINARY
LEVEL
UNKNOWN
ENCRYPT
BIT
LIKE
UNNEST
ERASE
BIT_LENGTH
LIMIT
UPDATE
EXCLUSIVE
LINENO
UPDATETEXT
EXPLAIN
BOOLEAN
LOAD
UPPER
FENCED
BOTH
LOCAL
USAGE
FIELDPROC
BREADTH
LOCALTIME
USE
FINAL
BREAK
LOCALTIMESTAMP
USER
GENERATED
BROWSE
LOCATOR
USING
GRAPHIC
BULK
LOWER
VALUE
HANDLER
BY
MAP
VALUES
HOURS
CALL
MATCH
VARCHAR
IDENTIFIED
CASCADE
MAX
VARIABLE
INTEGRITY
CASCADED
MIN
VARYING
ISOBID
CASE
MINUTE
VIEW
JAVA
CAST
MODIFIES
WAITFOR
LABEL
CATALOG
MODIFY
WHEN
LC_CTYPE
MODULE
WHENEVER
LEAVE
CHAR_LENGTH
MONTH
WHERE
LINKTYPE
CHARACTER
NAMES
WHILE
LOCALE
CHARACTER_LENGTH
NATIONAL
WITH
LOCATORS
CHECK
NATURAL
WITHOUT
LOCK
CHECKPOINT
NCHAR
WORK
LOCKSIZE
CLASS
NCLOB
WRITE
LONG
CLOB
NEW
WRITETEXT
LOOP
CLOSE
NEXT
YEAR
MICROSECOND
CLUSTERED
NO
ZONE
MICROSECONDS
COALESCE
NOCHECK
FALSE
MINUTES
COLLATE
NONCLUSTERED
TRUE
MODE
COLLATION
NONE
ACCESS
MONTHS
COLUMN
NOT
NAME
COMMIT
NULL
NAMED
COMPLETION
NULLIF
NHEADER
COMPUTE
NUMERIC
NODENAME
CONNECT
OBJECT
NODENUMBER
CONNECTION
OCTET_LENGTH
NULLS
CONSTRAINT
OF
NUMPARTS
CONSTRAINTS
OFF
AUDIT
OBID
CONSTRUCTOR
OFFSETS
OPTIMIZATION
CONTAINS
OLD
OPTIMIZE
CONTAINSTABLE
ON
PACKAGE
CONTINUE
ONLY
PAGE
CONVERT
OPEN
PAGES
CORRESPONDING
OPENDATASOURCE
PART
COUNT
OPENQUERY
PARTITION
CREATE
OPENROWSET
COMPRESS
PCTFREE
CROSS
OPENXML
PCTINDEX
CUBE
OPERATION
PIECESIZE
CURRENT
OPTION
PRIQTY
CURRENT_DATE
OR
PRIVATE
CURRENT_PATH
ORDER
DECIMAL
PROGRAM
CURRENT_ROLE
ORDINALITY
DEFAULT
PSID
CURRENT_TIME
OUT
DELETE
QUERYNO
CURRENT_TIMESTAMP
OUTER
DESC
RECOVERY
CURRENT_USER
OUTPUT
DISTINCT
RELEASE
CURSOR
OVER
DROP
RENAME
CYCLE
OVERLAPS
ELSE
REORG
DATA
PAD
REPEAT
DATABASE
PARAMETER
EXISTS
RESET
PARAMETERS
FILE
RESOURCE
DAY
PARTIAL
FLOAT
RRN
DBCC
PASCAL
FOR
RUN
DEALLOCATE
PATH
FROM
SCHEDULE
DEC
PERCENT
GRANT
SCRATCHPAD
PLAN
GROUP
SECONDS
DECLARE
POSITION
HAVING
SECQTY
POSTFIX
SECURITY
DEFERRABLE
PRECISION
IMMEDIATE
SHARE
DEFERRED
PREFIX
IN
SIMPLE
PREORDER
INCREMENT
SOURCE
DENY
PREPARE
INDEX
STANDARD
DEPTH
PRESERVE
INITIAL
STAY
DEREF
PRIMARY
STOGROUP
PRINT
STORES
DESCRIBE
PRIOR
STORPOOL
DESCRIPTOR
PRIVILEGES
STYLE
DESTROY
PROC
SUBPAGES
DESTRUCTOR
PROCEDURE
SYNONYM
DETERMINISTIC
PUBLIC
TABLESPACE
DIAGNOSTICS
RAISERROR
TYPE
DICTIONARY
READ
UNDO
DISCONNECT
READS
MAXEXTENTS
UNTIL
DISK
READTEXT
MINUS
UPSERT
REAL
MLSLABEL
VALIDPROC
DISTRIBUTED
RECONFIGURE
VARIANT
DOMAIN
RECURSIVE
VCAT
DOUBLE
REF
NOAUDIT
VOLUMES
REFERENCES
NOCOMPRESS
WLM
DUMMY
REFERENCING
YEARS
DUMP
RELATIVE
NOWAIT
DYNAMIC
REPLICATION
ARITH_OVERFLOW
EACH
RESTORE
CHAR_CONVERT
RESTRICT
CONFIRM
END
RESULT
OFFLINE
CONTROLROW
END-EXEC
RETURN
ENDTRAN
EQUALS
RETURNS
ONLINE
ERRORDATA
ERRLVL
REVOKE
ERROREXIT
ESCAPE
RIGHT
EXP_ROW_SIZE
EVERY
ROLE
IDENTITY_GAP
EXCEPT
ROLLBACK
IDENTITY_START
EXCEPTION
ROLLUP
PR