私が進めているプロジェクトでは、ユーザー用のデータベース、いくつかの異なるタイプのアイテム、およびaclのようなアクセス権システムを設計する必要があります。ACL用データベースの設計
基本的に、これは私がやりたいことである(はるかに複雑なのが、これは私が何を意味するかを証明するのに十分である):
- ユーザー:(ID、名前、パスワード)
- 記事:( ID、タイトル、本文)
- 画像:(ID、タイトル、file_nameに)
- 許可:(ITEM_TYPE、ITEM_IDは、USER_ID、()
読み取り、書き込み、管理itemTypeにnd itemIdは複合外部キーであり、item_typeに応じてアーティクルまたはイメージを参照します)
パーミッションテーブルの使用は良い考えではなく、記事や画像を表示することはできますが、同じアイテムに対して異なる権限を持つ複数のユーザーがいる可能性があります。これを与えることは選択肢ではありません。
私の意見では、これは正常に動作します。しかし、それは実装になると、私はこれを行うために私にいくつかの自由を与えるために単一のPHPのORMを見つけることができませんでした。これは、私が間違って何かをしているかもしれないと私に信じさせる。
私の質問は次のとおりです。 ACLとデザインデータベースを実装する正しい方法は何ですか? エンタープライズレベルのアプリケーションではどのように行われますか? 非db ACLソリューションはありますか?