私は現在、小さな自家製の PHP フレームワークに取り組んでいます。
ユーザー接続、ユーザー グループ、ユーザーとグループの両方のアクセス権などを自動的に管理したいと考えています。
ただし、一部の Web サイトでは、これらの要素の一部が必要ない場合があります。たとえば、ブログやショーケース サイトでは、グループやページ アクセス管理は必要ない場合があります。
フレームワークに未使用のものを含めることを避けるために、これを 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テーブルも作成しますか? 他の 2 つのモジュールが含まれているかどうか (または、ユーザーなしでは権限が存在しないため、少なくともグループ モジュールが含まれているかどうか)、アクセス モジュールのインストール SQL スクリプトの内部を確認する必要があることを判断するには、次のようにします。
次のようなことを行う方法はありますか:
if table exists 'group' create table 'group_right' ...
可能であれば、これもクロスデータベースにしたいと思います。
また、モジュール フォルダーが存在するかどうかをテストし、PDO を使用して適切なクエリを実行する SQL スクリプトの代わりに PHP スクリプトを使用することもできますが、これは少し汚いように見えます。
どうすればそれができるかについての提案は大歓迎です:)読んでくれてありがとう。