2

我目前正在开发一个小型的自制 PHP 框架。

我希望它能够自动管理用户连接、用户组以及用户和组的访问权限等内容。

然而,有些网站可能不需要这些东西。例如,博客和展示网站可能不需要组或页面访问管理。

为了避免在框架中包含未使用的东西,我想把它分成 3 个独立的模块(下一个可能更多)。这些模块中的每一个都有自己的 SQL 安装脚本,该脚本将创建模块自己的表,并更改它们依赖的其他表(添加列、外键等)。

假设我们有 3 个模块:“用户”、“组”、“访问”。

现在让我们假设所有 3 个模块都包含在内,数据库将如下所示:

user :
- id
- login
- password

group :
- id
- label

right :
- id
- label

user_group :
- userId
- groupId

user_right :
- userId
- rightId

group_right :
- groupId
- rightId

用户模块 SQL 脚本将创建用户表。

group 模块 SQL 脚本将创建 group 和 user_group 表。

访问模块 SQL 脚本将创建正确的表,并且...这就是我的问题所在:它还会创建 user_right 和 group_right 表吗?为了确定我需要检查访问模块安装 SQL 脚本内部是否包含其他两个模块(或者至少是组模块,因为没有用户就没有权限)。

有没有办法做类似的事情:

if table exists 'group' create table 'group_right' ...

如果可能的话,我也希望这是跨数据库。

我也可以使用 PHP 脚本而不是 SQL 脚本来测试模块文件夹是否存在,并使用 PDO 执行正确的查询,但这看起来有点脏。

欢迎任何关于我如何做到这一点的建议:) 感谢您的阅读。

4

0 回答 0