在大型项目上使用MySQL - 是否有多个数据库? [关闭]

问题描述 投票:2回答:2

在这里工作,我们正在开发一个以不错的速度增长的项目,我们目前正在计划如何在2018年进一步扩展。

我们办公室里有一位技术人员告诉我们他自己在使用PHP + MySQL的大型项目上与其他公司合作的经历。

我是我们项目中唯一的开发人员,因此当我感到困惑时,我没有其他人可以辩论或提出问题 - 所以我会在这里尝试。

这位技术人员问我数据库是如何构建的,我告诉他MySQL。他询问是否有一个数据库包含所有表或多个数据库,每个数据库都有各自的表(例如按任务/功能分组的数据库等),我只回复了一个包含项目中所有表的数据库。

然后,他建议将我的表拆分为多个数据库。这是一个坏主意吗?

我们运营的锦标赛平台有不同的游戏形式,如小组赛阶段,单淘汰赛和双淘汰季后赛等等。小组赛阶段的功能正在进行中,他建议创建一个名为“tournament_groups”的独立数据库,并将所有相关表格放入其中。

注意:我使用Laravel 5.4与Eloquent ORM进行开发。

总而言之:多个数据库中每个都有几个表,或者一个数据库中包含所有表?

php mysql database laravel eloquent
2个回答
0
投票

我认为你的同事正在谈论一个microservice架构,你不仅要拆分数据库,而且要将整个应用程序拆分成一组独立的组件。它不只是拆分数据库。

Martin Fowler的article可能是一个很好的起点。


0
投票

嗯,答案并不那么明显。有许多事情需要考虑:

1)易于开发 - 事实上,拥有单个数据库要容易得多 - 只迁移到这个单一数据库中,如果要在实时数据库中验证某些内容,只验证单个数据库,但需要为多个模型添加条件,示例where('company_id', 5),您需要非常小心,不要让一家公司的人员访问其他公司的数据

2)安全性或业务/法律要求 - 在某些情况下,由于合法的事情,每个客户应该有单独的数据库。例如,如果公司的管理员应该访问数据库,您可以轻松地访问他的公司数据库,但是您不能让他访问包含多个公司的数据库。

3)性能 - 由于性能原因,根据您期望的数据量,如果您希望表中有数百万行,那么为每个客户端建立单独的数据库可能会更好

我在两个场景中工作,对于我作为开发人员来说,拥有单个数据库要方便得多,但正如我所说,在某些情况下,唯一的选择可能是拥有多个数据库。

© www.soinside.com 2019 - 2024. All rights reserved.