他のいくつかのアプリに認証システムを提供する RESTful Web アプリを設計しています。他のアプリは、HTTP を介してこのアプリにクエリを実行し、認証されたユーザーを記述する XML を取得します。
認証アプリは、どのユーザーがどのアプリケーションで何を行うことが許可されているかを追跡する必要があります。
DBスキーマを作成しています。以下は私の最初のデザインです。(各テーブルに列があると仮定しid
ます。)
applications # The various client apps that will query this auth system.
------------
name
users # Table simplified for discussion
-----
username
password
email
roles
-----
name
application_id
roles_users
-----------
role_id
user_id
アイデアは、誰かが「Equipment Inventory」アプリで管理機能を実行しようとしたとします。したがって、「Equipment Inventory」は、認証システムに対して「ユーザー名 xxx とパスワード yyy を持つユーザーを取得する」と言います。次に、(ActiveResource を介して) 返されたUser
オブジェクトを調べ、そのroles
配列に、「Equipment Inventory」という名前のオブジェクトにRole
属する「ADMIN」という名前の が含まれているかどうかを確認します。Application
または、テーブルを削除して、" "、" "、" " などapplications
、より多くの役割を持たせた方がよい場合もあります。equipment_inventory_admin
equipment_inventory_readonly
job_tracker_admin
Application エンティティを正規化することと、テーブル構造を単純化することのどちらがより重要でしょうか? おそらく、すべての入力の後、私は自分の質問に答えたばかりですが、コメントや提案は大歓迎です.