`
luotuoass
  • 浏览: 639388 次
文章分类
社区版块
存档分类
最新评论

CZTZ-JavaEE Web开发基础平台系列培训(一)-数据库设计规范

 
阅读更多

CZTZ-JavaEE Web开发基础平台系列培训()

数据库设计规范

题外话:一个优秀的程序员和架构师,不应该只是一个学习机器,同样要有创造性思维和开阔的技术视野,独到的技术视角和哲学性思维。

一、前言

CZTZ-JavaEE Web开发平台包括基础开发平台、产品线开发平台、行业基础平台三部分组成。目前正在进行基础平台的开发工作,并在筹建产品线开发平台项目组。

CZTZ-JavaEE Web开发平台的运作方式是基础平台由核心平台项目组研发,可以在此平台上集成第三方应用软件供应商的产品,在营销环节可作为统一的品牌进行市场推广,利润分配本着互惠互利,共同发展的原则,共同拓展庞大的中国应用软件市场。

CZTZ-JavaEE基础平台主要实现后台增删改查类应用的快速开发,并整合了Acegi安全框架、CAS单点登录和其他单点登录机制,权限管理功能强大,另外还包括信息发布及页面静态化、站内全文检索(包括信息检索、文件检索,可定制的数据库全文检索功能)

CZTZ-JavaEE的产品线开发平台实际是企业级开发平台,包括搜索引擎、工作流、OA,ERP,电子商务、Portal、博客、动态报表、知识管理、BI分析工具等内容。本项目组在全国各地诚征有自主知识产权的软件供应商或优秀的原创应用软件开发者共同研发,共同推广。有意者请发Email及产品简介、Demo或个人技术专长succ100@163.com王先生收。

历史上曾经有句名言:让全世界无产者联合起来!在国内,有很多正在创业的中小软件公司、程序员及正在苦寻职业道路的大学毕业生,在这个群体里,每个个体的资源是极为有限的(这里的资源包括技术资源、产品资源、市场资源),但如果我们能将这些技术资源、产品资源和市场资源有机整合起来,成功一定也会向我们招手。在此我也呼吁:让全国的IT创业者们联合起来!

在这里我简单地谈一下我的个人感受。我曾经抱有这样一个想法:在大公司里勤奋工作,过几年总可以上升到一个比较高级的职位,拿更高的薪水,但现实打破了我的梦想,因为大公司的高层管理人员都是直接从外面聘任的,他们的教育背景都非常好,我们长年作为一线的开发人员和开发经理,虽然在产品研发上积累了相当多的经验,但我们的技术实力,在一个有着类似国企的管理体制下是很难得到重视的,虽然我们的技术实力每年度都在飞速提高,但公司不会经常为你的技术能力进行客观地评估,并根据你的技术能力和工作成绩调整你的个人薪资。我曾经实施了一个项目,在项目研发的一年期间,基本每周都是工作六天(没有加班费),在客户现场开发,晚上至少是九点半以后回去休息,以这样的工作态度和热情,居然项目组里没有一人成为季度的优秀员工。我曾经调侃地对大家说:这说明公司评选的是优秀的员工,而不是更优秀的员工,因为我们是更优秀的,所以没有被评上。实际上,我们根本没有参与投票评比,优秀员工名单是上面早就拟订好的。媒体上曾经评价IT人员跳槽率高,实际上这绝对不是我们的错,因为,在大多数公司,没有年度调整薪资的机制,只有跳槽才能加薪。也许这是因为企业领导者骨子里认为反正人才多的是(表面上仍然要说尊重人才,留住人才),少了谁公司都能运转。在事实上,他们更在乎的是营销人员的流失,而不是技术人员的流失,所以技术人员在与公司谈加薪时并没有多少筹码,尤其是做项目的公司,在项目管理中,代码,文档,设计资料都被很规范地管理起来,所以一个人的去留,不会对项目造成冲击,至少我所管理的项目是这样的。我作为研发经理,虽然项目的整体架构都是我来设计的,但我将设计思想灌输到了每个开发人员的脑子里,所以我离开项目组时,并没有太多要交接的内容,这是作为开发经理的职责。

作为从事IT技术工作的程序员、设计师和架构师,我们崇尚技术,追求财富。因为崇尚技术,忽略了人际关系的培养,所以在与上司、同事、下属相处不快时,便心生去意,跳槽的想法就在心里油然而生,因为我们不善于处理人际关系、漠视政治(不是说国家大事),漠视人事斗争,因而我们在一定的程度上说,我们不具有斗争性,我们是弱势群体。在这个时代,崇尚的个性的张扬,而不是桃李不言,酒香不怕巷子深,所以我们要呐喊-在我们自己的技术领域,我们要引导技术的潮流,在市场营销领域,我们再也不能说:这不是我们的长项,我们必须不能再一味地闷头研究技术,至少我们要抽出30%的精力来拓展销售渠道,相对来说,技术人员做面对客户的直销虽然很难,但做渠道销售一点都不难,既然我们已经预期了我们有很好的应用平台,我们就有了热情,有了向周围朋友宣传平台的兴致,我们可以把我们周围开软件公司的朋友,做销售的朋友列一个名单,然后了解平台的应用价值和运作模式后,然后开始向他们宣传吧,将他们拉入我们的销售队伍中!我想你的朋友一定会支持你的。我甚至都想到了向我推荐做安利的朋友,把他们也拉进来,毕竟,我们所营销的是高技术的产品和服务,不会有人用异样的质疑的眼光来看你,一句话,拓展一切可能拓展的销售渠道!

我们的群体是崇尚技术革命的群体,同样也是注重市场、注重客户需求的群体。在基础平台从07年度11月份开始设计时,应用的都是Java开源社区最新release版本的框架,包括Spring,Hibernate,Struts,Acegi,Webwork,FckEdit,Jfreechart,Lucene,Cas,Jforum, dhtmlxTree…,

平台研发组的技术负责人在IT行业的工作经验有的多达十年以上。即使大家对CZTZ的商业运作不感兴趣,也欢迎大家就中国的Java应用开发平台应该具备什么特色的角度,为CZTZ平台提出一些看法吧。国外在开源领域开发了那么多优秀的基础框架,国内在这方面很难超越他们,但是中国有那么多的大中小型企业,我们至少在Java应用开发平台方面可以超越他们(应用平台,就是架设在基础框架下的快速开发和快速客户化的企业应用套件。)

由于CZTZ-JavaEE平台的开发成员是来自全国各地的,培训和交流多有不便,所以本人在CSDN博客上不定期地编写文档为项目组成员进行技术培训,欢迎大家经常到http://blog.csdn.net/baozhengw上面浏览本人的最新文章,并发表评论。

二、CZTZ-JavaEE Web应用平台数据库设计规范

2.1适用范围:本规范适用于新开发模块,对于第三方集成应用不受此限制。

2.2 各子系统使用的表前缀:

eas:基础平台,例eas_meta_table

cms:内容管理,例cms_info

pur:采购管理

inv:库存管理

sal:销售管理

mrp:生产管理和MRP

hr:人力资源

wf:工作流平台

oa:办公自动化

km:知识管理

blog:博客

sso:单点登录

其他未定义的模块在设计前确定。

2.3:表命名规范

数据库表的命名为子系统名_为前缀,表名中下划线不能超过两个。表名的长度不应超过20位字符串长度。

2.4字段定义规范

字段名中出现下划线不能超过2个,字段名长度不能超过30字符串长度,字段中单词尽量用缩写,例如:

dt表示日期时间,flg表示flag

表设计的原则为除多对多关系表外,一般采用唯一主键的原则进行设计,由于我们采用Hibernate进行开发,所以单一主键在平台开发中非常便利,单一主键的序列号一般由随机数生成器生成(通过StringUtil.getUUID()生成32位唯一ID)

唯一主键一般命名为obj_id

以下是一些通用的表字段:

sort_no int NULL,排序号,用于指定记录排序顺序

row_id varchar(40) 行唯一ID,这个是非空的字段,记录创建赋值一次以后不再变更。

create_dt varchar(23) 记录创建时间,字符串型日期时分秒毫秒

create_uid varchar(40) 创建者登录帐号

update_dt varchar(23) 最后修改时间

update_uid varchar(40) 最后修改者登录帐号

对于树型关系表,如组织结构树的设计,一般采用001001001这种级次码维护树型关系,一般这样设计树型结构的表:

obj_id varchar(40)

tree_code varchar(30) 树节点编码,001002,当节点关系改变时,tree_code会发生变化,但obj_id是不变的。

is_leaf varchar(16),表示是否为叶子节点,可为空,取值为true/false

2.5 存储过程的使用原则

在产品基础平台上一定不要使用存储过程、触发器进行开发,只有当产品销售给客户后才可以根据客户选择的数据库,有针对性地从性能角度考虑,将部分实现类替换为存储过程实现。

2.6 程序中使用SQL的注意事项

由于不可避免地要在某些地方使用SQL语句,在使用SQL语句时需要遵循的原则,只允许使用标准SQL,象字符串列相加,有的RDBMS采用+进行字符串连接,有的采用||,左连接和右连接在不同的RDBMSleft outer join, (+)=,*=,等表达形式,还有数据库函数等,这些SQL一定不能硬编码到程序中,如果一定要引用特定数据库相关的SQL语句,请在配置文件中定义SQL字符串,然后在程序中通过读取配置文件的SQL字符串来形成SQL语句,这样一旦数据库替换为其他RDBMS,可以通过在配置文件中重新配置SQL来实现,这样可以避免重新编译程序。

在数据库设计中,日期字段一般用字符串日期来表示,不要将数据库字段设置为日期型,以减少数据库移植带来的开发成本。一般只设计字符串型和数字型字段,特殊情况下有大文本字段。

2.7数据库表外键命名规则

由于每个表在设计时都给定了编号,如00100020,表编号大的表,其外键肯定指向表编号小的表,外键命名可按FK_0020_0010,0010表的主键为0020表的外键。

2.8 由表反向生成Hibernate映射文件

由表反向生成Hibernate映射文件可网上参考MyEclipse相关的开发,有多种工具可以实现工数据库反向生成Hibernate映射文件,在平台开发中,反向生成映射文件由专人负责完成。

三、规范的说明

本规范在以后的开发中会逐渐完善。

分享到:
评论

相关推荐

    Rain Water Algorithm雨水优化算法附matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    基于springboot+vue的房屋租赁出售系统

    提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

    杭电-[数据结构(c语言版)]复习题纲杭州电子科技大学.pdf

    杭州电子科技大学,期末考试资料,计算机专业期末考试试卷,试卷及答案,数据结构。

    年医院医生个人工作总结.docx

    工作总结,新年计划,岗位总结,工作汇报,个人总结,述职报告,范文下载,新年总结,新建计划。

    阿里巴巴笔试题目.docx

    校园招聘笔试题目及答案

    顺从宗族联动机器人matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    基于Python的图像阴影检测与去除源码(高分期末大作业项目).zip

    基于Python的图像阴影检测与去除源码(高分期末大作业项目).zip已获导师指导并通过的97分的高分期末大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 基于Python的图像阴影检测与去除源码(高分期末大作业项目).zip已获导师指导并通过的97分的高分期末大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 基于Python的图像阴影检测与去除源码(高分期末大作业项目).zip已获导师指导并通过的97分的高分期末大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 基于Python的图像阴影检测与去除源码(高分期末大作业项目).zip已获导师指导并通过的97分的高分期末大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 基于Python的图像阴影检测与去除源码(高分期末大作业项目).zip已获导师指导并通过的97分的高分期末大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。基于Python的图像阴影检

    Android阅读器源码

    Android阅读器源码是用于在Android平台上开发电子书阅读器应用的源代码。阅读器可以支持多种电子书格式,如EPUB、PDF、TXT等,并提供诸如翻页、搜索、书签、夜间模式等功能。

    该项目包含为与用户合作的微电网能源管理系统的多目标优化而开发的matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    人力资源数据分析看版.xlsx

    Excel数据看板,Excel办公模板,Excel模板下载,Excel数据统计,数据展示

    MS15-058 SQL Server 2008 R2 Service Pack 3 补丁包

    MS15-058 SQL Server 2008 R2 Service Pack 3 SQLServer2008R2-KB3045314-x64 不太好找,找到了,就分享一下吧

    基于LabView+MATLAB的说话人识别系统.zip

    labview 与 C 和BASIC 一样,LabVIEW [2]也是通用的编程系统,有一个完成任何编程任务的庞大函数库。LabVIEW [3]的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。LabVIEW [3]也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。 LabVIEW [2](Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而 LabVIEW 则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI指虚拟仪器,是 LabVIEW 的程序模块。 LabVIEW [2] 提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。用户界面在 LabVIEW 中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。

    JavaSE技术题Java开发过程中的面试

    JavaSE技术题Java开发过程中的面试

    Python实现基于深度学习的预测区域电力负荷模型源码+项目说明(高分项目).zip

    Python实现基于深度学习的预测区域电力负荷模型源码+项目说明.zip已获导师指导并通过的97分的高分期末大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 Python实现基于深度学习的预测区域电力负荷模型源码+项目说明.zip已获导师指导并通过的97分的高分期末大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 Python实现基于深度学习的预测区域电力负荷模型源码+项目说明.zip已获导师指导并通过的97分的高分期末大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 Python实现基于深度学习的预测区域电力负荷模型源码+项目说明.zip已获导师指导并通过的97分的高分期末大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 Python实现基于深度学习的预测区域电力负荷模型源码+项目说明.zip已获导师指导并通过的97分的高分期末大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 Python实现基于

    会创意年会策划.docx

    年会班会资料,节目策划,游戏策划,策划案,策划方案,活动方案,筹办,公司年会,开场白,主持人,策划主题,主持词,小游戏。

    基于物联网MQTT协议的智能停车场管理系统

    基于物联网MQTT协议的智能停车场管理系统 本项目为Eclipse搭建的Maven Web项目 前端采用BootStrap框架 后端采用SSM框架 主要特点: 1.管理员与用户两大功能组 2.基于Apache Apollo服务器的MQTT通信,用于实现地锁装置与管理系统的通信 3.采用第三方微信支付BufPay

    com.baidu.netdisk_12.9.6.apk

    com.baidu.netdisk_12.9.6.apk

    合并两个有序链表是一个常见的编程问题.txt

    两个有序链表的合并pta

    ASP.NET Core 运行时 6.0.29

    ASP.NET Core 运行时 6.0.29

    计算机科学与技术专业数据结构试题 2002年7月杭州电子科技大学期末考试题.pdf

    杭州电子科技大学,期末考试资料,计算机专业期末考试试卷,试卷及答案,数据结构。

Global site tag (gtag.js) - Google Analytics