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

时间:2014-06-27 19:20:18

标签: php design-patterns

我知道这个问题的标题不直观,但让我们回答这个问题。

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

  • 用户(管理用户角色)
  • 用户类型(在不同的系统中,有不同类型的用户,因此非常好地管理它们)
  • 模块(创建新模块并为其添加权限)
  • 控制台

我的主要问题是用户模块。由于它具有默认列

  • 用户ID;名称;登录;电子邮件;密码; isRoot; isPowerUser; UserTypeId

我想创建新的控制面板和应用程序,但不想更改此表以保持"核心"可以通过简单的过程进行更新。我的设计理念是创建一个名为User_Extra的表,它将包含该特定用户的所有额外列。

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

如果你想看看项目以获得ideia:https://bitbucket.org/alexandrekop/akop-core

1 个答案:

答案 0 :(得分:2)

想象一下,查看您的数据库架构,并查看名为" user_extra"的表。有一堆不以任何方式相互关联的字段,每个字段都与不同的模块相关,感觉是否正确?

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

例如,如果一个模块与地址相关,那么您将拥有一个表" user_addresses",其中的内容仅针对用户的地址。