关于几种不同结构数据处理的心得
来源:互联网 发布:网络策划方案 编辑:程序博客网 时间:2024/06/16 20:43
又是好久没有更新博客了,自己还是没有养成一个良好记录的习惯。创业项目的第一版还是比较成功的,虽然只是一个共手机用户浏览的wap版小网站,但是通过团队人员在微信公众号中的经营,使得每日有稳定的用户访问量。当然,这种统计还要感谢cnzz提供的站长工具的支持,真的是很好用。用户的增多代表着这个领域还是有需求量的,从而激发了我们下一个版本,不仅限于手机访问的web网站。新一轮的开发任务已经袭来,心得体会神马的也就少不了了。
在设计数据库和开发的时候我遇到几种不同的数据结构,以及想出的处理办法现总结如下(当然不对的话还会继续更新修改)。
1.需要在数据库中多建一张表么
在数据库设计的时候经常会遇到这样的情况,在某表中有一个企业类型字段,如“国企”,“央企”,“外企”等。通常情况下选择将这种设计分类的字段都设计成整形。通过数字来区分不同的类型。问题来了,那这个对应关系是应该存在程序中还是存在数据库中呢?
如果存在程序中类似于这样
存在数据库中就需要新建一张表,类似于这样将信息写在备注中
个人对比认为选择哪一个还是可以视情况而定。前者方便操作无需繁琐的数据库查询操作,后者利于扩展,方便添加类型维护类型等操作。然而如果类型或者此类字段不会在变化,那么个人认为使用第一种也未尝不可。因为数据库是擅长于存放经常变化的数据操作,如果不变那么就成为一张死表。
另外一种情况, 我现在想实现用户资料完整度,可以相应的给每一个项目赋予分值,如名字5分、手机10分。。等等。然后加起来除以100 就可以计算出完整度。那么属性与分值的这种对应关系就必须采用一种键值对的形式存储。数据库还是程序中的类似hashmap结构呢?答案是都不,针对这种情况结合吃了几次亏后发现应该使用配置文件来存储类似键值对,专业十分方便后期修改分数。当然,如果涉及到复杂的或者可视化的修改分值还是存在数据库中比较好。
推荐一种.Properties类型的配置文件,通用方便。
a)Properties类与Properties配置文件
Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集。不过Properties有特殊的地方,就是它的键和值都是字符串类型
b)Properties中的主要方法
load(InputStream inStream)
可以从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象
<span style="white-space:pre"></span><pre style="margin-top: 0px; margin-bottom: 0px; margin-left: 22px; white-space: pre-wrap; word-wrap: break-word; line-height: 21px; font-family: 'Courier New' !important;"> Properties pro = <span style="color: rgb(0, 0, 255); line-height: 1.5 !important;">new</span><span style="line-height: 1.5 !important;"> Properties(); FileInputStream in </span>= <span style="color: rgb(0, 0, 255); line-height: 1.5 !important;">new</span><span style="line-height: 1.5 !important;"> FileInputStream("a.properties"); pro.load(in); in.close();</span>
store(OutputStream out, String comments)
这个方法将Properties类对象的属性列表保存到输出流中。如下面的代码:
FileOutputStream oFile = new FileOutputStream(file, "a.properties");pro.store(oFile, "Comment");oFile.close();
- //加载/保存普通键值对文件
- load(InputStream inStream)
- store(OutputStream out,String comments)
- //加载/保存XML键值对文件
- loadFromXML(InputStream in)
- storeToXML(OutputStream os,String comment)
- //获取/设置键的值
- getProperty(String key)
- setProperty(String key,String value)
- //列出所有的键值对
- list(PrintStream out)
c)代码示例
package com.rzzl.tools;import java.io.InputStream;import java.util.Properties;/** * 构造一个读取配置文件的单例模式 提供读取value的方法 * @author demontf * */public class MyProperties {public Properties pro;public static MyProperties myPro;private MyProperties(){pro = new Properties();try {//String filePath=this.getClass().getResource("/integrity.properties").getPath();//InputStream in = new BufferedInputStream(new FileInputStream(filePath));//获取src目录下的配置文件InputStream is = this.getClass().getResourceAsStream("/integrity.properties");pro.load(is);} catch (Exception e) {e.printStackTrace();}}public static MyProperties getInstance(){if(myPro==null){myPro = new MyProperties();}return myPro;}public int getProperty(String key){ String value=pro.getProperty(key); if(value!=null){ return Integer.parseInt(value); } return -1; }}
0 0
- 关于几种不同结构数据处理的心得
- 关于epoll的一些心得----关于监听和数据处理
- 关于epoll的一些心得----关于监听和数据处理(2)
- 关于卷积神经网络的几种结构
- <%的几种不同
- 关于机载LiDAR数据处理的几点心得体会
- 海量数据处理的几种方案扫盲
- 海量数据处理的几种方法
- 海量数据处理的几种方法总结
- 数据处理:数据的几种简单处理
- struts中数据处理的几种方式
- 【ML】对数据处理的几种方法
- 关于适配不同分辨率的一些心得
- 【任务笔记】关于EMC DMX-4系列数据处理的一点心得
- Flex中关于DateField控件的selectableRange属性的几种不同用法的例子
- 关于数据处理的杂谈
- 关于Winsock error number: 10053 WSAECONNABORTED 的几种不同解释
- 关于几种模式和jdk不同版本新特性的总结
- Object-关于NSAutoReleasePool的理解
- linux下Makefile学习之六(使用函数)
- jredis分片选择数据库且支持服务器故障动态过滤
- iOS 之正则表达式
- 黑马程序员-iOS基础-Objective-C基础(九)
- 关于几种不同结构数据处理的心得
- 爬虫的关键技术(以电影数据的爬取为例)
- iOS 之日期/时间段转换
- [unity3d]unity中几个系统自带的函数的执行顺序
- 角色碰撞器。
- 虚拟机 android 唤醒
- 转移数据库中所有的表-从oracle到mysql(从mysql到mysql 两台电脑)
- 系统设计说明书(架构、概要、详细)目录结构
- 白血病男子帮上千病友购仿制药涉嫌“销售假药罪”被诉