在平时做项目当中,我们经常会碰到分库的情况,但是分库也得分出技巧,特别是有些类似的库不能合并成一个的时候,
那么我们的命名相当重要,这边我的理解可以是这样前面是部件名称,后面是序号,例如:th_part_001
后台数据库设计的时候需要遵循几条原则:
1.数据库命名原则
2.用途不同的数据库采用不同的连接
3.特别是跨库的时候区分开这种问题,所以在数据库中必须有一个字段作为标识,用来标识哪个数据库,比如th_part_001
中的001,比如一个用户登录系统,相当于一个sa的身份,那么他应该有权限看到所有用户,但是呢,这些用户分布在不同
的库里,所以要在每个用户上分别增加一个标识符号,比如datapartid,用来标识属于哪一个库,这样方便在分库查询的时候
灵活应用。
public class DataSources {
public static final String DS_USER = "c_user";
public static final String DS_SC_SYS = "sc_sys";
public static final String DS_SC_SCH = "sc_sch_";
public static final String DS_CMS = "cms_";
public static final String DS_CJ = "cj_";
public static final String DS_CLASS = "class_";
public static final String DS_TH = "th_part_";
public static DBConnection thConn(String datapartID) throws EXPSQLException {
return DBConnectionFactory.createDBConnection(DS_TH + datapartID);
}
public static DBConnection sysConn() throws EXPSQLException {
return DBConnectionFactory.createDBConnection(DS_SC_SYS);
}
public static DBConnection userConn() throws EXPSQLException {
return DBConnectionFactory.createDBConnection(DS_USER);
}
public static DBConnection schConn(String datapartID)
throws EXPSQLException {
return DBConnectionFactory.createDBConnection(DS_SC_SCH + datapartID);
}
public static DBConnection cmsConn(String datapartID)
throws EXPSQLException {
return DBConnectionFactory.createDBConnection(DS_CMS + datapartID);
}
public static DBConnection cjConn(String datapartID) throws EXPSQLException {
return DBConnectionFactory.createDBConnection(DS_CJ + datapartID);
}
public static DBConnection classConn(String datapartID)
throws EXPSQLException {
return DBConnectionFactory.createDBConnection(DS_CLASS + datapartID);
}
public static DBConnection dbConn(String ds) throws EXPSQLException {
return DBConnectionFactory.createDBConnection(ds);
}
}