数据库设计-mysql数据库设计问题

发布于 2016-12-22 06:48:02 字数 225 浏览 1248 评论 1

现在的需求是牵扯到多个不同的公司(销售电脑的、销售手机的、销售冰箱的等等),在建立数据库时想到了两种方案。一、将所有公司建立在同一个数据库中。二、为每个公司建立一个数据库。第一种编写程序时简单,但是当公司增多,数据量增大时就会有性能问题。第二种可以动态创建数据库,这样可以解决性能问题。第二种类似OpenERP的设计,每个公司创建一个数据库。请问如果采用第二种,怎么设计。公司现在用的JFinal,但是JFinal中貌似不支持多数据库。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜柠檬 2017-03-15 18:19:56

只是说下jfinal中如何正确使用多数据源
1,JFinal 为了省代码达到极速开发,所以只支持一个主数据源,同时支持多个辅数据源。所谓主数据源是指当你在使用JFinal对数据库操作时,如果没有明确指定数据源,那么默认为使用了主数据源。
主数据源可以在两个地方设置,其一是在 new ActiveRecordPlugin 时指定,其二是使用DbKit.setDataSource(DataSource ds)来指定。ActiverecordPlugin 中所依赖的主数据源,以及数据库配置都是共享的,所以 new 出多个 ActiveRecordPlugin来是没有意义的。主数据源可以通过DbKit.setDataSource(...)在程序中动态指定。
C3P0Plugin 可以创建多个对象,这是有意义的,所以楼主上面给的代码是有意义的。
Oracle 在保存数据时 primaryKey 是指主键名称,例如可以是"ID",而Record这个参数中,要给定相应的主键值,如new Record().set("ID", 123);
以下给出多数据源的使用例子代码,首先是初始化代码:

public void configPlugin(Plugins me) {
// C3p0Plugin可以有多个对象存在

C3p0Plugin c3p0Plugin = new C3p0Plugin(...);

C3p0Plugin c3p0Plugin2 = new C3p0Plugin(...);

me.add(c3p0Plugin);

me.add(c3p0Plugin2);

// ActiveRecordPlugin 只能有一个对象存在

ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);

me.add(arp);

arp.addMapping("vote", Vote.class);

}

以下是多数据源使用代码:

view sourceprint?

// 没有指定数据源的时候,默认使用是的主数据源
Vote vote = Vote.dao.findById(123);

// 指定了数据源,默认使用的是辅数据源,注意下面方法的第一个参数都指定了数据源

List<Record> votes = Db.find(c3p0Plugin2.getDataSource(), "select * from vote");

Db.save(C3p0Plugin2.getDataSource(), "vote", "ID", new Record().set("ID", 888).set(...).set(...));

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文