为何要将主机划分为网络―地址管理
2011-05-20 08:56
363 查看
在数据库设计原理中;自增长字段的目的是为了unique的索引来判断每条记录唯一性;同时保证大数据库量的时候的查询速度。
但在oracle和mongodb数据库中有单独的字段判断唯一性;所以设计中没有自增长字段方式(mysql和mssql都有);并且也不提倡用自增长字段设计表结构。
不过经常用习惯这种方式的程序员;oracle和mongodb数据库也可以实现类似的功能;oracle中有sequence方式。
那我们也可以试试在mongodb数据库中实现自增长字段模式;就是模仿一下oracle中有sequence方式。
1:在mongodb数据库中建立一个名为:sequence的collection;
2个field:coll_name(记录其它collection名字)和cnt(其它collection的自增长字段最大序号)。
2:java代码:
//得到用户表的sequence 自增长id
private static int getSequence(String tableName){
DBCollection table = conn.getDb().getCollection("sequence");
DBObject query = new BasicDBObject();
query.put("coll_name", tableName);
DBObject newDocument =new BasicDBObject();
newDocument.put("$inc", new BasicDBObject().append("cnt", 1));
DBObject ret = table.findAndModify(query, newDocument);
if (ret == null){
return 0;
}else{
return (Integer)ret.get("cnt") + 1;
}
}
//新增用户
public static void addUser(UserInfo user){
int id = getSequence("admin_user");
if(id != 0){
DBCollection table = conn.getDb().getCollection("admin_user");
DBObject query = new BasicDBObject();
query.put("id", id);
query.put("name", user.getName());
query.put("e_mail", user.geteEmail());
query.put("passwd", user.getPassword());
query.put("is_del", false);
query.put("create_time", user.getCreateTime());
table.insert(query);
}
}
但在oracle和mongodb数据库中有单独的字段判断唯一性;所以设计中没有自增长字段方式(mysql和mssql都有);并且也不提倡用自增长字段设计表结构。
不过经常用习惯这种方式的程序员;oracle和mongodb数据库也可以实现类似的功能;oracle中有sequence方式。
那我们也可以试试在mongodb数据库中实现自增长字段模式;就是模仿一下oracle中有sequence方式。
1:在mongodb数据库中建立一个名为:sequence的collection;
2个field:coll_name(记录其它collection名字)和cnt(其它collection的自增长字段最大序号)。
2:java代码:
//得到用户表的sequence 自增长id
private static int getSequence(String tableName){
DBCollection table = conn.getDb().getCollection("sequence");
DBObject query = new BasicDBObject();
query.put("coll_name", tableName);
DBObject newDocument =new BasicDBObject();
newDocument.put("$inc", new BasicDBObject().append("cnt", 1));
DBObject ret = table.findAndModify(query, newDocument);
if (ret == null){
return 0;
}else{
return (Integer)ret.get("cnt") + 1;
}
}
//新增用户
public static void addUser(UserInfo user){
int id = getSequence("admin_user");
if(id != 0){
DBCollection table = conn.getDb().getCollection("admin_user");
DBObject query = new BasicDBObject();
query.put("id", id);
query.put("name", user.getName());
query.put("e_mail", user.geteEmail());
query.put("passwd", user.getPassword());
query.put("is_del", false);
query.put("create_time", user.getCreateTime());
table.insert(query);
}
}
相关文章推荐
- 主机上的vsphere ha 代理无法访问其它主机的部分管理网络地址
- 为何要将主机划分为网络?―性能
- 为何要将主机划分为网络?―安全性
- 某A类网络10.0.0.0的子网掩码255.224.0.0,请确定可以划分的子网个数,写出每个子网的子网号及每个子网的主机范围。
- IP地址、子网掩码、网络号、主机号、网络地址、主机地址
- 子网掩码、ip地址、主机号、网络号、网络地址、广播地址
- IP地址、网络号、主机号、广播地址等分析计算
- 1-11 实验9 网络管理实验1 获取自身的和父节点网络地址、MAC地址
- IP地址、子网掩码、网络号、主机号、网络地址、主机地址
- 知道IP地址和子网掩码。算出网络地址、广播地址、地址范围、可用的主机数
- Java网络编程从入门到精通(15):为什么要使用SocketAddress来管理网络地址
- 网络划分与寻址三要素: IP地址、子网掩码和地址分类
- Arp工作原理及欺骗原理 局域网的网络流通不是根据IP地址进行,而是根据MAC地址进行传输。 当主机A要和主机B通信时,这时候假定A,B刚开机,或者ARP缓存表是空的。既然谈到通信,那么一般来说,
- 计算机网络--地址的划分问题
- 网络编程与并发-批量主机管理工具开发
- 把一个c类的网络地址192-168-1-0划分为6个子网,请计算出...
- IP地址、子网掩码、网络号、主机号、网络地址、主机地址
- 计算机网络地址,主机地址,子网掩码,网段,子网划分的理解
- virtualbox虚拟机(Ubuntu16.04)在网络设置有NAT和only主机两块网卡时,安装ssh显示无法解析地址的问题解决
- Linux网络管理之修改系统主机名