如何使用枚举类型元素跳转实现游戏关卡的跳转

SetJava集合类的重要组成部分它用來存储不能重复的对象。枚举类型元素跳转类型也要求其枚举类型元素跳转元素各不相同看起来枚举类型元素跳转类型和集合是很相似嘚。然而枚举类型元素跳转类型中的元素不能随意的增加、删除作为集合而言,枚举类型元素跳转类型非常不实用EnumSet是专门为enum实现的集匼类,本实例将演示其用法

思路分析:可以通过为EnumSet指定类型,该类型即为在同一包中定义的枚举类型元素跳转类使用EnumSet类的add()方法添加元素,使用EnumSet类的remove()方法删除元素使用EnumSet类的complementOf()方法获取对象的全部,使用EnumSet类的range()方法获取指定范围的元素

版权声明:本文为博主原创文章未经博主允许不得转载。 /hj7jay/article/details/

枚举类型元素跳转类可以在判断的时候使代码更加优雅好看

四种数据类型:布尔类型、微整型、枚举类型元素跳转类型和集合类型都逐一分析这四种数据类型的特性,以及针对每种数据类型做相应的深入分析和案例挖掘出MySQL手冊没有详细写清楚的部分,相关技术文章可以考虑从数据类型系列第一篇文章开始阅读

本文内容属于基于在此之前分享的6篇关于四种数據类型的文章之上,我们结合实际的业务场景和生产环境维护成本等多个角度进行分析阐述什么样的业务场景,适合使用布尔类型、枚舉类型元素跳转类型和集合类型使用这三种数据类型之后,又回给我们带来哪些麻烦如何规避这三种数据类型带来的弊端等问题,将會逐一解答

一文的测试过程和结论,非常清晰地告诉我们:MySQL数据库的布尔类型BOOL或称布尔类型BOOLEAN等同于微整型TINYINT(1)。MySQL数据库数据类型分类中确實存在布尔类型但是MySQL数据库并没有真正实现布尔类型,而是借助微整型的方式实现并且创建数据库表结构的时候,即使字段定义属性設置为布尔类型BOOL或布尔类型BOOLEAN都会被默认改写成TINYINT(1)。

MySQL数据库产品没有真正实现对布尔类型的支持建议大家不要使用MySQL布尔类型BOOL或布尔类型BOOLEAN,洏是使用数据库类型微整型TINYINT替代

对枚举类型元素跳转类型字段存储数据的数据测试案例分享和总结文章为,对枚举类型元素跳转类型字段进行DDL变更操作支持的案例分享和总结文章为通过详尽的测试对比过程,对MySQL枚举类型元素跳转类型的特点非常清晰我们再简要综合地囙顾枚举类型元素跳转类型的优缺点:

2)         引入枚举类型元素跳转类型数据存储,有利于缩减数据库存储数据的容量尤其能达到减少数据库瓶颈最大的物理IO,逻辑IO也能减小提高主机的处理能力;

MySQL数据库枚举类型元素跳转类型是一种有应用场景广泛的数据类型,若是抛开网站程序或软件版本发布可能会导致开发工程师与数据库维护人员之间没有配合好的问题,非常推荐大家把枚举类型元素跳转类型引入到生產环境的数据库应用中对企业而言也可以起到节省人力、物理等成本。建议大家使用枚举类型元素跳转类型的时候尽量把可能需要用箌的枚举类型元素跳转元素,都写到MySQL数据库表字段的定义属性中减少出现漏做DDL变更的故障。

和文章有完整的测试过程,充分总结MySQL数据庫集合类型的优缺点我们再简要地回顾集合类型的优缺点。

4)         开发工程师不需要借助额外的集合元素编码表或程序中使用编号替代集合嘚字符串元素,达到减少开发成本、提高代码的可读性和可维护性;

3)         集合类型字段的定义属性的集合元素增加只能以尾部追加的方式,若是此特性没有掌握则会导致数据服务提供受影响;

MySQL数据库支持集合类型,对解决一些特殊的业务场景提供了非常好的解决方案经典應用场景案例:

人才招聘网站的用户,设置工作意向城市一项则往往会选择1-3个城市,甚至更多城市采用集合类型字段作为数据存储结果的话,将可以大量简化程序复杂度以及大规模降低数据存储的容量,唯一的遗憾则是集合元素限制为64个会导致无法满足招聘网站后期业务发展需要。

MySQL数据库中采用集合类型存储数据生产环境的网站程序或软件版本更新发布时,一旦出现数据库维护人员没有优先更新數据库表字段的定义属性则会导致重大的数据丢失事故,给企业造成直接的经济损失

3)         网络游戏公司采用的数据库服务器的硬件配置差,甚至单硬盘的主机支撑多个数据库提供数据服务主机的存储空间也有限;

网络游戏产品使用MySQL数据库集合类型字段存储业务数据,是非瑺值得推荐的方式对开发人员而言,跟使用其他数据类型是一样的也无额外学习成本,还可以为企业降低开发成本、硬件资源成本

系统地分析了布尔类型、枚举类型元素跳转类型、集合类型,MySQL数据库没有实现布尔类型只是借助微整型TINYINT(1)间接实现,为此可以理解MySQL数据库沒有布尔类型;集合类型与枚举类型元素跳转类型都各自存在一个非常可怕的弊端 — 数据库结构变更没有做,网站程序或软件版本发布巳上线导致用户数据丢失的问题,那么我们不使用枚举类型元素跳转类型或集合类型能否获得这2种数据类型的优点,规避这2种数据类型的缺陷为此我们各举一个实际应用案例。

l  取代集合类型应用场景—求职者工作意向城市

求职者可挑选工作意向城市列表可以通过后囼程序进行编辑,并且存储在City表中可以任意进行添加、修改、删除,都不会造成网站程序版本的更新也不会影响数据库提供的数据服務,且城市名称等信息的变更只要修改City表即可。另外通过简便的内连接SQL查询语句,就可以符合MySQL支持的JOIN连接—嵌套循环算法效率非常高,也不需要程序进行特殊处理完全可以取代集合类型的作用,唯一遗憾就是需要多写点代码

l  电子商务行网站的商品分类目录

商品分類目录的数据读取,都是先读取父节点的信息再根据父节点信息读取其下子节点的数据信息。

若是采用枚举类型元素跳转类型存储商品汾类信息我们则可以简便地创建一张表,2个字段即可实现上述的做法最大的缺陷是子节点升级为父节点的时候,则需要发布网站程序與做数据库结构变更修改枚举类型元素跳转类型字段的定义属性,必须以尾部追加的方式才不影响数据库提供的数据服务。使用我们介绍的替代办法则需要工程师编写更多的代码实现,可以借助图形化管理工具轻松完成各自都有优缺点。

一句话总结:任何解决方案必须从技术、开发成本、维护成本、可靠性等多个角度综合论证,寻找最适合团队、业务场景的方案

数据类型系列讲解文章列表:

我要回帖

更多关于 枚举类型元素跳转 的文章

 

随机推荐