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映射文件,在平台开发中,反向生成映射文件由专人负责完成。
三、规范的说明
本规范在以后的开发中会逐渐完善。
分享到:
相关推荐
【基于Springboot+Vue的设计与实现】高分通过项目,已获导师指导。 本项目是一套基于Springboot+Vue的管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。也可作为课程设计、期末大作业 包含:项目源码、数据库脚本、开发说明文档、部署视频、代码讲解视频、全套软件等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行! 环境说明: 开发语言:Java 框架:springboot,mybatis JDK版本:JDK1.8 数据库:mysql 5.7数据库工具:Navicat11开发软件:eclipse/idea Maven包:Maven3.3
这份资料详细介绍了广义表(Generalized List)这一重要的数据结构。广义表是一种递归数据结构,其元素可以是原子(基本数据类型,如数字、字符)或者子表(另一个广义表),具有灵活性和递归性的特点。 资料主要包含七个部分:基本概念介绍、表示方法、存储结构、基本操作、高级操作、应用场景和优化策略。在基本操作部分,详细讲解了创建、遍历、插入、删除等功能的具体实现,每个操作都配有完整的C语言代码示例。在应用场景部分,展示了广义表在表示嵌套表达式、树结构和多层嵌套数据等实际场景中的应用。针对实现过程中可能遇到的内存管理、递归效率、栈溢出等问题,资料也提供了相应的优化策略和解决方案。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
图引擎模块(GE)是MindSpore的一个子模块,其代码由C++实现,位于前端模块ME和底层硬件之间,起到承接作用。图引擎模块以ME下发的图作为输入,然后进行一系列的深度图优化操作,最后输出一张可以在底层硬件上高效运行的图。GE针对昇腾AI处理器的硬件结构特点,做了特定的优化工作,以此来充分发挥出昇腾AI处理器的强大算力。在进行模型训练/推理时,GE会被自动调用而用户并不感知。GE主要由GE API和GE Core两部分组成
校园数字化图书馆系统 JAVA毕业设计 源码+数据库+论文+启动教程(SpringBoot+Vue.JS) 项目启动教程:https://www.bilibili.com/video/BV1jKDjYrEz1
matplotlib图例指南
大学生创业-JAVA-基于springboot+vue的大学生创业项目的信息管理系统
2024年11月,中国电子信息产业发展研究院(赛迪研究院)、中国软件评测中心(工业和信息化部软件与集成电路促进中心)和FreeBuf咨询共同发布《2024年中国数据安全企业全景图》及典型数据安全产品案例集。
【基于Springboot+Vue的设计与实现】高分通过项目,已获导师指导。 本项目是一套基于Springboot+Vue的管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。也可作为课程设计、期末大作业 包含:项目源码、数据库脚本、开发说明文档、部署视频、代码讲解视频、全套软件等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行! 环境说明: 开发语言:Java 框架:springboot,mybatis JDK版本:JDK1.8 数据库:mysql 5.7数据库工具:Navicat11开发软件:eclipse/idea Maven包:Maven3.3
【基于Springboot+Vue的设计与实现】高分通过项目,已获导师指导。 本项目是一套基于Springboot+Vue的管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。也可作为课程设计、期末大作业 包含:项目源码、数据库脚本、开发说明文档、部署视频、代码讲解视频、全套软件等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行! 环境说明: 开发语言:Java 框架:springboot,mybatis JDK版本:JDK1.8 数据库:mysql 5.7数据库工具:Navicat11开发软件:eclipse/idea Maven包:Maven3.3
# 基于TreasureHunt项目的户外寻宝游戏系统 ## 项目简介 TreasureHunt是一个旨在鼓励户外活动的寻宝游戏系统。该系统包括一个或多个宝藏和一个寻宝设备(猎手)。通过此项目,参与者可以在户外享受寻找宝藏的乐趣。 ## 项目的主要特性和功能 1. 宝藏与猎手交互猎手设备能够检测并追踪附近的宝藏。 2. 真实距离估算通过WiFi信号估算宝藏与猎手之间的距离。 3. 3D打印的抛物面反射器用于增强猎手设备的信号接收能力。 4. 丰富的用户界面提供详细的操作指南和指示,帮助用户更好地使用该系统。 5. 测试与实验项目中还包括对如何通过WiFi计算距离的尝试和文档记录。 6. 多重库支持项目使用了多个库,如Adafruit SSD1306、Adafruit GFX Library、Adafruit BusIO等,以实现各项功能。 ## 安装使用步骤
在硅谷企业工程师领导力导师道路上的一些观察和思考.pdf
【基于Springboot+Vue的设计与实现】高分通过项目,已获导师指导。 本项目是一套基于Springboot+Vue的管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。也可作为课程设计、期末大作业 包含:项目源码、数据库脚本、开发说明文档、部署视频、代码讲解视频、全套软件等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行! 环境说明: 开发语言:Java 框架:springboot,mybatis JDK版本:JDK1.8 数据库:mysql 5.7数据库工具:Navicat11开发软件:eclipse/idea Maven包:Maven3.3
jquery+css3实现的小狗绕地球奔跑动态404页面错误代码
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
Java青协志愿服务管理系统源码 前台技术 JSP(css,js,ajax,el,java) 项目技术 Struts+srping+Hibernate Struts 控制器(负责接收据+处理数据+响应结果(重定向+转)) Spring 工厂类 Hibernate 持久性访问层 log4j.properties 日志文件 *.properties配置文件 Struts.xml 配置action WebRoot根目录 fckeditor在线编辑器, images img 图片 upload,updown 上传下载, admin common 前台JSP页面 WEB-INF (lib+jsp+*.xml) applicationContext.xml 中心配置文件 web.xml 项目配置文件 项目一些基本配置参数
ASP.NET中小企业仓库管理系统源码 源码包含三层代码生成器、数据库设计和表字段说明等。其中包括代码生成器和数据库设计.CDM字段说明 菜单功能 1、入库管理:物品入库管理、入库退货管理、入库结算管理 2、出库管理:物品出库管理、出库结算管理 3、查询统计:物品入库查询、物品出库查询、入库退货查询、入库结算查询、出库结算查询、出库排行榜查询 4、库存管理:库存统计、在库资金统计、库存预警管理 5、基础信息管路:类别管理、物品管理、供应商管理 6、系统设置:管理员管理、操作员管理、用户权限管理 7、密码修改 8、退出系统
1、ioDraw 是免费的在线作图软件,用于制作流程图、思维导图、甘特图、白板手绘图、mermaid流程图、海报设计、折线图、柱状图、拓扑图、组织结构图、UML、ER和时序图、平面设计图、电子电路图等,无需注册即可使用 2、替代Visio的免费软件,无使用限制 3、适合程序员、白领、系统架构师、项目经理、平面设计师、产品经理使用 4、v3.1.0变更日志: 新增将文件保存到百度网盘。 新增对macOS的支持。 修复第三方平台文件列表页显示问题。
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> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值
这是来自于的c++考试题目