我目前正在开发一个小型的自制 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 执行正确的查询,但这看起来有点脏。
欢迎任何关于我如何做到这一点的建议:) 感谢您的阅读。