我正计划在 CakePHP 中开发一个以图形和卡片显示信息的 Web 应用程序。我选择 CakePHP 是因为我们需要展示的信息非常结构化,所以模型的方式更容易管理数据;我也有一些来自 ASP.NET 的 MVC 经验,我喜欢使用路由是多么简单。
所以,我的问题是,可以使用该应用程序的多个组织将拥有自己的数据库,其架构与我们需要的架构不同。我不能只在 app.php 文件中设置他们的字符串连接,因为他们的数据库与我的模型不匹配。
组织数据源不适合我的模型有很多原因:表的名称不同,架构不同,我的实体的字段在单独的表中,也许它们在不同的数据库中有信息,或者也在不同的 DBMS 中!
以这样一种方式,cakephp 模型/实体可以使用数据,而不管来源如何。你对如何做到这一点有什么建议吗?CakePHP 是否可以选择使这成为可能?我应该将 PHP 与某种标记语言(如 JSON 或 XML)一起使用吗?也许 MySQL 有一个实用程序可以将来自不同来源的数据转换为视图,我可以让 CakePHP 使用视图而不是表?如果您有答案,请尽可能详细。
如果无法制作界面,则可以使用其他选项: - 使用另一个框架,可以更轻松地处理此问题并具有我上面提到的功能。- 让组织更改他们的数据库,使其与我的模型相匹配(我不喜欢这个,他们可能不会这样做)。- 在应用程序自己的数据库中传输数据。
附加信息:图表中显示的数据来自大学学生。任何大学都有自己的数据库,有自己的结构和使用数据库的应用程序,这就是为什么改变结构不是那么容易的原因。我只是想让任何学校尽可能轻松地配置自己的数据库。
编辑:版本是 CakePHP 3.2。一个重要的约定是它不需要所有的 CRUD 操作,只需要“读取”。希望这使解决方案更容易。