如何使用PHP正确扩展数据库模型

如何使用PHP正确扩展数据库模型,php,design-patterns,Php,Design Patterns,我知道这个问题的标题并不直观,但让我们进入问题 我为我所有的后端web应用程序(控制面板、管理客户的系统、余额等)设计了一个“核心系统”。此“核心”是根据新系统特定需求开发新模块的起点,但我始终保留“核心模块”: 用户(用于管理用户角色) 用户类型(在不同的系统中,有不同类型的用户,因此很好地对他们进行日常管理) 模块(创建新模块并向其添加权限) 仪表板 我的主要问题是关于用户模块。因为它有默认列 用户标识;名称登录;电子邮件;密码;伊斯鲁特;伊斯波鲁瑟;用户类型ID 我想创建新的控制面

我知道这个问题的标题并不直观,但让我们进入问题

我为我所有的后端web应用程序(控制面板、管理客户的系统、余额等)设计了一个“核心系统”。此“核心”是根据新系统特定需求开发新模块的起点,但我始终保留“核心模块”:

  • 用户(用于管理用户角色)
  • 用户类型(在不同的系统中,有不同类型的用户,因此很好地对他们进行日常管理)
  • 模块(创建新模块并向其添加权限)
  • 仪表板
我的主要问题是关于用户模块。因为它有默认列

  • 用户标识;名称登录;电子邮件;密码;伊斯鲁特;伊斯波鲁瑟;用户类型ID
我想创建新的控制面板和应用程序,但不想更改此表以使“核心”在将来可以通过简单的过程进行更新。我的设计思想是创建名为User_Extra的表,该表将包含此特定用户的所有额外列

这是一个好方法吗?我还将创建一个名为UserExtra.class.php的新类


如果您想查看该项目以获得ideia:

想象一下,查看您的数据库模式,看到一个名为“user\u extra”的表,其中包含一组字段,这些字段之间没有任何关联,每个字段都与不同的模块相关,您觉得“正确”吗

我的建议是将额外字段拆分为相关表,可能是每个模块或每个逻辑组


例如,如果一个模块与地址相关,您将有一个表“user\u addresses”,其中只包含特定于用户地址的内容。

太好了!很有道理!