【问题标题】:codeigniter single application multiple databasescodeigniter 单应用多数据库
【发布时间】:2011-03-31 07:47:24
【问题描述】:

我将把我的代码库转移到新的 2.0 框架,只是对以下几点有几个问题

我的网址如下

  • example.in/city1
  • example.in/city1/admin
  • example.in/city2
  • example.in/city2/admin

我想知道根据 url 中的城市切换数据库的最佳方法是什么? .

在我的 webroot 中,我将拥有像 city1、city2 这样的目录,每个目录都包含一个 index.php 文件,该文件指向单个代码库。

现在我只需要一种方法来根据输入的 url 切换数据库。

问候, 谢尔顿

【问题讨论】:

  • 你为什么要基于城市的不同数据库?
  • 我会完全重新考虑这种方法。一个数据库,为每个城市使用一个表(或者更好的是,几个具有适当关系的表)。我想不出你需要这样做的一个原因
  • @poelinca, @ross 我考虑为每个城市建立多个数据库的主要原因是我们有一个支持中心和物流团队来满足每个城市的客户需求。所以我认为将每个城市的数据保存在单独的数据库中会更有意义
  • 错误的决定(至少从我的角度来看),设计这样一个允许您立即在城市、世界上添加国家/地区的数据库结构会很困难(而且会更有趣)跨越国家,跨越世界的行星......你不需要目录,但需要路线,用户,类别树(城市......),acl和资源......让你的应用程序可以通过2单击而不是轻松扩展创建另一个数据库和目录和配置...
  • @poelinca 我的网站目前仅在 1 个城市运营,数据库中有大约 150 个包含该城市信息的表格。根据你的说法,更好的更可扩展的解决方案对我来说更好地重新处理数据库中的所有表结构,以便现在与 cityid 关联。因此,当我切换到另一个城市时,将使用城市 ID 作为键过滤掉数据。 ——

标签: codeigniter codeigniter-url


【解决方案1】:

我完全同意@poelinca 和@Ross,你绝对应该考虑重新考虑你的设计。

不过,对于参考问题,CodeIgniter 论坛已经很好地覆盖了这个主题 here

基本上,您只需为每个连接配置另一组$db 项,然后通过提供新的$db 作为DB 类构造函数的参数,CodeIgniter 框架根据这些配置参数请求连接。

【讨论】:

  • 我的网站目前仅在 1 个城市运行,数据库有大约 150 个包含该城市信息的表。根据您的说法,我最好将数据库中的所有表结构重新设计为现在与 cityid 关联。因此,当我切换到另一个城市时,将使用城市 ID 作为键过滤掉数据。
猜你喜欢
  • 1970-01-01
  • 2016-04-19
  • 2010-10-12
  • 2015-04-06
  • 1970-01-01
  • 2015-08-21
  • 2017-06-07
  • 2011-11-27
相关资源
最近更新 更多