1. 急需MySql数据库设计规范

1. 数据表命名规范
模块名缩写_存储信息[_存储信息子类](多个单词用下划线分隔),全部小写版,例如:b2c_goods_type
2. 字段命权名规范
存储信息属性(多个单词用下划线分隔),全部小写,命名规则只来自于业务,尽量表达出列的含义。
例如:goods_id
3. 字段类型规范。
规则:用尽量少的存储空间来存 数一个字段的数据.
比如能用int的就不用char或者varchar
能用tinyint的就不用int
能用 varchar(20)的就不用varchar(255)
时间戳字段尽量用int型,如 created:表示从 '1970-01-01?08:00:00'开始的int秒数,采用英文单词的过去式;gmtCreated:表示datetime类型的时间,即形如 '1980-01-01?00:00:00'的时间串,Java中对应的类型为Timestamp
日期:用date
时间:用time
数字格式的用:int、tinyint、mediumint、smallint、bigint根据实际情况选择
字符串:用char、varcahr;
文本:用text
金额:用float

2. 入库数据接口标准

一、数据命名规则

在航空物探数据分类基础上,对每类数据逐步分解到基本数据单元,空间数据的要素类分解至图层,对象类分解至数据库表。制定了《航空物探空间数据要素类和对象类划分标准》,规范了要素类和对象类数据的命名规则,使空间数据库中的每个要素类和对象类的命名具有唯一性,防止重名出现。要素类和对象类的命名采用按专业、比例尺、数据内容及顺序的编码规则,编码结构如下。

图5-1 要素类和对象类数据命名规则

1)专业分类代码:为相关专业术语第一个字的汉语拼音的首字母,如果首字母与已有代码相同,则为专业术语第二个字拼音的首字母。例如,D:地质,L:地理,W:物探。

2)比例尺代码:为编码的第2位,采用测量比例尺或成图比例尺,按下列方式编码:

0-不分比例尺;

1,1∶1000000;2,1∶500000;3,1∶250000或1∶200000;4,1∶100000;

5,1∶50000;6,1∶25000或1∶20000;7,1∶10000;8,1∶5000。

3)数据内容识别码:为编码的第3~5位,依据数据表示的内容编码,对象类和要素类采用不同的编码规则。

对象类第3位为英文字母O,第4~5位编码含义如下:

AG 表示与航空物探项目信息相关的数据对象;

MF 表示与航磁测量相关的数据对象;

EM 表示与航电测量相关的数据对象;

GR 表示与航放测量相关的数据对象;

GA 表示与航重测量相关的数据对象。

要素类数据内容识别码,分表5-1表5-2两种情况。

表5-1 要素类数据内容识别码释意表

表5-2 要素类数据内容识别码释意表

4)顺序码:由编码的第6~8位组成。第6位亦可用来表示数据的子类型,第7~8位表示相同类型数据的顺序编码。

在整理数据时,采用规范化的命名规则命名要素类和对象类数据文件。把规范的文件名和相对应数据库表名预定义到采集库的文件导入规则表中,在文件数据导入时,对导入数据的文件名进行检查,避免文件名输入错误,把其他数据导入数据库。

二、数据库表结构标准

制定了空间数据要素类的各图层的属性数据库表结构和对象类的数据库表结构标准,规定了各类数据库表的所包含的数据项名称、代码、数据的存储类型及长度等。例如表5-3为项目概况数据库表结构及部分数据项,和数据库表名(WOAG001)。把数据库表结构信息预定义到采集库的文件导入规则表中,在数据入库时,按规则表中的数据库表结构信息对入库数据的数据存储类型及长度进行检查(即入库前系统检查)。

表5-3 项目概况信息对象类(WOAG001)

三、规范导入数据文件格式

在规范空间数据命名基础上,进一步规范了数据文件格式(表5-4),建立入库数据接口标准,解决了不同来源不同格式的航空物探数据入库问题。

表5-4 导入数据文件格式接口标准

3. 如何用sql重命名数据库

在修改数据库名称之前,如果有用户连接到数据库的话会造成数据库重命名失败,版可以先执行
select
spid
from
master.dbo.sysprocesses
where
dbid=db_id('OldDbName')
结果集中权显示的是当前连接到数据库OldDbName的连接
比如结果是
79
81
当然,实际值应该不是这两个
然后执行
kill
79
kill
81
关闭已建立的连接,之后再执行
EXEC
sp_dboption
'OldDbName',
'Single
User',
'TRUE'
EXEC
sp_renamedb
'OldDbName',
'NewDbName'
EXEC
sp_dboption
'NewDbName',
'Single
User',
'FALSE'