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采用+进行字符串连接,有的采用||,左连接和右连接在不同的RDBMS有left outer join, (+)=,*=,等表达形式,还有数据库函数等,这些SQL一定不能硬编码到程序中,如果一定要引用特定数据库相关的SQL语句,请在配置文件中定义SQL字符串,然后在程序中通过读取配置文件的SQL字符串来形成SQL语句,这样一旦数据库替换为其他RDBMS,可以通过在配置文件中重新配置SQL来实现,这样可以避免重新编译程序。
在数据库设计中,日期字段一般用字符串日期来表示,不要将数据库字段设置为日期型,以减少数据库移植带来的开发成本。一般只设计字符串型和数字型字段,特殊情况下有大文本字段。
2.7数据库表外键命名规则
由于每个表在设计时都给定了编号,如0010和0020,表编号大的表,其外键肯定指向表编号小的表,外键命名可按FK_0020_0010,即0010表的主键为0020表的外键。
2.8 由表反向生成Hibernate映射文件
由表反向生成Hibernate映射文件可网上参考MyEclipse相关的开发,有多种工具可以实现工数据库反向生成Hibernate映射文件,在平台开发中,反向生成映射文件由专人负责完成。
三、规范的说明
本规范在以后的开发中会逐渐完善。
分享到:
相关推荐
2023年第三届长三角数学建模c题考试题目,可下载练习
随着人工智能技术的飞速发展,越来越多的学生和研究人员开始利用AI技术来辅助他们的毕业设计。本教程旨在指导读者如何开发一个基于人工智能的毕业设计辅助系统,帮助学生更高效地完成毕业设计任务。
yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值
文件1
分布式应用运行时的落地实践.pdf
席卡制作模版会议较多的单位,经常要打印席卡,本模版可以解决燃眉之急
大模型下的多模态智能风控落地实践.pdf
游戏
Alibaba Dragonwell 是一款免费的 OpenJDK 发行版,其提供长期支持,包括性能增强和安全修复
内容概要:本文详细介绍了多个数据库应用系统的开发教学案例,旨在培养学生的复杂问题解决能力。每个案例均包括系统背景、功能模块、ER图设计、关系模式转换和实际编码等内容。涉及的具体系统包括实验耗材管理信息系统、创新项目管理信息系统、宿舍管理信息系统、学生成绩管理系统、党员管理信息系统和学生信息管理系统等。 适合人群:计算机专业学生、数据库课程教师及数据库开发爱好者。 使用场景及目标:适用于高校的数据库课程教学,帮助学生掌握数据库系统的设计与开发方法,提高其实际开发能力和解决问题的能力。 其他说明:文章不仅提供了详细的开发步骤,还包括了评分标准和格式要求,便于教师评估学生的作品。同时,文章提供的多种案例覆盖了不同的应用场景,使学生能够更好地理解和应用所学的知识。
# 基于ARM平台的钢琴游戏系统 ## 项目简介 本项目是一个基于ARM平台的钢琴游戏系统。游戏利用开源代码进行修改,旨在为用户提供一种在开发板上模拟弹奏钢琴的体验。用户可以通过触摸屏或鼠标点击键盘按键来播放音乐,体验类似于真实钢琴的触感。此项目主要面向对计算机编程、嵌入式系统以及音乐有兴趣的用户。 ## 项目的主要特性和功能 1. 真实模拟钢琴键盘游戏提供了类似真实钢琴的键盘布局,用户可以通过触摸或点击来模拟弹奏。 2. 多功能触摸输入除了基本的键盘操作,游戏还支持触摸输入其他功能,如音量调节、曲目选择等。 3. 音效反馈每次按键都会产生相应的音效反馈,为用户带来真实的弹奏体验。 4. 图形界面优化游戏界面设计简洁明了,易于用户操作。 5. 多线程处理游戏采用多线程技术处理屏幕绘制、音频播放等任务,确保流畅运行。 6. 开源代码修改基于开源代码进行修改和优化,提高了系统的稳定性和兼容性。 ## 安装使用步骤(假设用户已下载本项目的源码文件)
ASP.NET采购评审专家管理系统源码 功能描述:1.系统登录:通过输入用户及密码登录系统(密码经过加密处理); 2.业务管理: (1)专家管理、添加专家信息、编辑专家信息、删除专家信息; (2)专家抽取、抽取项目列表、创建项目抽取(设置抽取人数,专家类型,随机抽取)、查看抽取记录; (3)类型管理、添加类型、编辑类型、删除类型; 3.系统管理: (1)管理员管理、添加管理员、编辑管理员信息、删除管理员信息; (2)系统操作日志、删除日志记录、导出excel日志文件。 (3)短信发送记录。(4)短信回复记录。
ASP.NET图书商城电子商务网站源码 一、源码特点 1、图书商城电子商务网站源码采用三层架构开发,购物车功能,主要参考了petshop的设计架构、使用了 Asp.net2.0中很多MemberShip、master等新功能。 2、采用三层架构开发,购物车功能,主要参考了petshop的设计架构、使用了Asp.net2.0中很多MemberShip、master等新功能。 二、功能介绍 1、前台集成了产品在线展示,用户注册、在线调查、在线投稿 2、后台有类别管理\图书管理\订单管理\会员管理\配送范围管理\邮件列表\广告管理\友情链接管理等 3、后台添加图书时自动生成缩略图和文字水印
keil5工程-stm32f103rct6
Java版ssm企业工资管理系统源码 运行环境:jdk 1.8 项目技术:jsp+mysql+Spring+mybatis 运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以 IDE环境:Eclipse,IDEA都可以 tomcat环境:tomcat9.0 硬件环境:windows7/8/10 1G内存以上 主要功能说明:管理员角色包含一下功能:管理员登录,员工管理,部门管理,岗位管理,职称管理 工龄奖金管理,工资项管理,考勤管理,工资查询,统计图表等功能。 员工角色包含:员工登录,个人信息管理,考勤管理,工资详情等功能。
Java医院人事管理系统源码 项目描述: java web医院HR后台管理系统(增加shiro) 运行环境:jdk7+tomcat7+mysql+MyEclipse+maven 使用技术:spring+spring mvc+mybatis+bootstrap+jquery+jsp+shiro
PaddleOCRSharp是一个基于百度飞桨PaddleOCR的C++代码修改并封装的.NET的OCR工具本地类库,可离线使用。包含文本识别、文本检测、表格识别功能。本项目针对小图识别不准的情况下做了优化,比飞桨原代码识别准确率有所提高。 包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、竖排文本识别、长文本识别。同时支持多种文本检测。
内容概要:本文提出了TransFusion,一种利用变压器解码器层实现鲁棒性的激光雷达-相机融合3D物体检测方法。通过软关联机制,TransFusion能够在低质量图像条件和传感器未对准时保持性能,并实现了目前最好的3D检测效果,特别是在nuScenes和Waymo数据集上取得了显著成绩。 适合人群:从事自动驾驶领域的研究人员和技术开发者,尤其是关注多模态传感器融合和3D物体检测的研究者。 使用场景及目标:适用于需要高性能和高鲁棒性的自动驾驶系统,特别是需要从激光雷达和摄像头数据中高效提取3D物体信息的场景。主要目标是在恶劣环境条件下(如夜间、光照不足)依然能够稳定地进行3D物体检测。 其他说明:文中详细介绍了模型的设计思路,包括特征提取、查询初始化、注意力机制和融合模块等多个方面的创新点。同时,实验部分展示了在多个大规模数据集上的优异表现,验证了方法的有效性和泛化能力。
【基于Springboot+Vue的设计与实现】高分通过项目,已获导师指导。 本项目是一套基于Springboot+Vue的管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。也可作为课程设计、期末大作业 包含:项目源码、数据库脚本、开发说明文档、部署视频、代码讲解视频、全套软件等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行! 环境说明: 开发语言:Java 框架:springboot,mybatis JDK版本:JDK1.8 数据库:mysql 5.7数据库工具:Navicat11开发软件:eclipse/idea Maven包:Maven3.3
基于SpringBoot+Vue的宿舍管理系统(前端代码)