mysql - 如何处理MySQL表太多的麻烦?

标签 mysql database resources

我正在构建应用程序,用户可以在其中导入他们的应用程序。对于用户导入的每个应用程序,他都可以选择导入他的用户。此外,他还可以将自定义字段添加到存储用户的表中。当我提出为每个用户应用程序创建一个新表的解决方案时,我的负责人告诉我这不是好的解决方案,因为表太多(1000 个应用程序 2000 个表)。现在我想知道这个 MySQL 资源问题的最佳解决方案是什么?

最佳答案

您有一个包含最常用字段(id、用户名、密码、电子邮件、应用程序 ID 等)的核心用户表,其中应用程序 ID 区分不同应用程序的用户。

您创建一个属性定义表,其中至少有应用程序 ID、属性 ID 和属性名称字段(如果其他表也可扩展,那么您应该有一个字段标识与属性相关的表)。

您还需要一个属性表来保存实际的属性值。如果多个表是可扩展的,那么您可以考虑拥有多个属性表。属性表将至少包含应用程序 ID、用户 ID、属性 ID、属性值字段。属性值字段应具有通用数据类型,例如 varchar,因为您几乎可以将所有数据类型存储为文本。

这样您就可以避免为每个应用程序创建单独的用户表。缺点是检索和编辑用户数据会比较复杂。

关于mysql - 如何处理MySQL表太多的麻烦?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35501944/

相关文章:

php - 为 MySQLi 查询执行设置超时

javascript - 使用 AJAX 将带有 mySQL 数据的 PHP 变量发送回 javascript

php - 如何使用数据库中的颜色在 PHP 中动态更改 css 背景颜色

PHP注册表问题,数据库收不到数据

MYSQL - 从列中选择一个值或(如果没有给出值)选择全部

mysql - JOIN mysql 表上的 PRIMARY KEY 和 JSON 数组

php - Laravel 4 - 镜像数据库?

azure - 需要仅为 VM 的标签部署 Azure 策略

compilation - 对 Intellij 如何编译事物和处理资源感到困惑

hadoop - 作业在子队列中提交,但不在父队列中提交