0

登録ユーザーが他の登録ユーザーが編集できるページを作成できるようにするアプリケーションでは、UMLとSQLの両方で、通常のユーザーとページの作成者を区別する正しい方法は何ですか。

UMLでは、私は

--------  accesible by --------  
| Page |  ------------ |User  |
--------               --------
  |created by            / \
  |                       | 
  |                       |
---------   is a          |
|Creator|------------------
---------

さて、これは正しいUMLではないと思います。それで、私が表現しようとしているものの正しいUML表現は何でしょうか。そして最終的には、同じSQLデータベースを作成したいと思います。その場合、データベーススキーマはどのようになりますか?

4

2 に答える 2

0

いつものように、モデル(UML)とコード(SQLなど)には複数の可能性があります。

モデルA)上記のようにモデルB)ユーザークラスのみで、作成者はありません。ユーザーはページからの両方の関連付けのターゲットです:「アクセス者」と「作成者」

モデルの違いは、ページを作成できるユーザーとモデルAでは作成できないユーザーを区別できることです。モデルBでは、すでにページを作成したユーザーと作成していないユーザーのみを区別できます。

両方のモデルは、両方の実装によって実装される可能性があります。

コード1)5つのテーブルを使用:Page、User、Creator、PageToUser、PageToCreatorコード2)4つのテーブルを使用:Page、User、PageToUserAccessible、PageToUserCreated(および場合によってはUserのフラグ「creator」)コード3)3つのテーブルを使用:Page、 User、PageToUser、およびPageToUserで「作成された」フラグ(さらに、Userで「作成者」フラグ)

とった?すべてが「正しい」-それはあなた次第です:)

于 2012-10-30T19:41:37.923 に答える
0

この場合、ロールは特定のものである必要があります。つまり、アクセスが異なるとロールが異なる必要があります。ロールごとに異なるアクセス権を持つ3人のユーザーがいるとします。1管理者2マネージャー3ユーザーこの場合、管理者はページを作成し、ページとユーザーのすべての詳細を編集するためのアクセス権を持ちますが、マネージャーはページを作成し、アクセスに応じてそのページのいくつかの詳細を編集するためのアクセス権を持ちます。ユーザーは、ページを作成および表示するためのアクセス権のみを持ち、ページの詳細を編集することはできません。アクセスレベルはデータベースで定義する必要があります。

これがお役に立てば幸いです

于 2012-10-31T08:57:41.753 に答える