如何处理MySQL太多表的麻烦



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

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

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

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

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

最新更新