php - MySQL - 每个客户端一张表或所有客户端的一张表

标签 php mysql database database-design

我正在开始一个有多个客户的项目。在数据库中,每个客户端可能有数十万行。

与其将所有客户端放在一个表中,不如拆分客户端以便每个客户端都有自己的表是否有意义?对我来说这是有道理的,因为每次查询客户时,您只会查找包含其数据的表。

最佳答案

一般来说,最好有一个数据库,所有数据都在共享表中。出于多种原因,这更好:

  • 您只需维护和更新一个系统。
  • 您可以执行跨客户端查询(“昨天有多少客户端修改了数据?”)
  • 与大量小表相比,SQL 对于较大的表更为优化。

您有一些充分的理由希望将客户端数据拆分到不同的表、甚至不同的数据库或不同的服务器之间。这些考虑因素包括:

  • 需要对数据进行物理分离的系统要求。
  • 针对不同客户的不同发展路径。
  • 难以实现安全要求(安全性在行级别更难实现)。

在这种情况下,我会选择不同的数据库,而不仅仅是单个数据库中的不同表。

按照 SQL 标准,每个客户端数十万行并不是很大,除非您开始拥有数千个客户端。

关于php - MySQL - 每个客户端一张表或所有客户端的一张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31808433/

相关文章:

php - 无法在外部 CSS 工作表中定义填充和边距

php - 从 JSON 请求中移除 DOM 标签

python - 无法在列的行中找到列

Mysql order by 连接查询速度极慢

mysql - 错误代码 1215 MySQL

c# - 我是否需要安装 microsoft sql server 或者它默认随 visual studio community 2017 一起提供?

php - MySQL中的行值增加和减少1

PHP:逐字阅读?

mysql - 一对多连接三张表

mysql - 合并多个表时使用ID进行排序