0

複数のユーザーを持つ Web サイトに取り組んでいます。合計 5 ユーザーとします。確認する必要があるのは、各ユーザーが入力したデータにのみアクセスできるようにすることです。

CRM や求人掲示板を思い浮かべてください。したがって、ジョンはジョンの情報へのアクセス、編集、追加などのみを行うことができます。ジェーンとジューンも同様です。

私の読みが正しければ、クエリが一意のIDに基づいてデータのみをプルすることを確認するだけです。

したがって、ユーザーのデータベース テーブルは次のようになります。

Database: xxxxx, Table: xh_user
user_id 
user_username
user_fname
users_email
users_password 
users_salt

したがって、ジョンの user_id が 7 の場合、ジョンがログインすると、彼の ID が照会され、データベースから彼のコンテンツのみが表示されます。

私はこれで正しいですか?、またはこれを達成するための別の方法またはより良い方法はありますか?

4

4 に答える 4

0

データがリンクされるように外部キーが正しく設定されている限り、user_id (PK)問題ありません。user_rolesまたは、アクセス権を含むテーブルをセットアップできます。

于 2013-09-30T05:14:56.443 に答える
0

私が知っている限り、そしてどのようにプログラミングしてきたかというと、そうです。追加のセキュリティを探している場合は、データベースにあるものに対してユーザーのパスワード/ソルトを確認してください。

于 2013-09-30T05:15:22.030 に答える
0

私がする必要があるのは、クエリが一意のIDに基づいてデータのみをプルすることを確認することです

これが何を意味するのかはわかりませんが、一般的/大まかな声明であり、悪いとも良いとも言えません。それは本当にあなたが構築しているシステムに依存します。これは決して一般的に適用される記述ではありません。

現在のセットアップでは、これはある程度正しいように見えますが、長期的には、一部のデータを公開するか、少なくとも複数の人がアクセスできるようにする必要がある場合があります。これは、現在の設計では不可能です。

アクセスとコンテンツは別のものなので、分割します。どのユーザー (または役割ベースのパターンを検索) がどのデータにアクセスできるかを別のテーブルに保存して、後でそのデータを基に構築し、複数のユーザー機能を追加できるようにします。

これは長い議論になる可能性があるので、これで締めくくります: すべてのデータベース設計の要点は、現実の世界と同じように、論理単位を表す方法で情報を保存する必要があるということです (はい、私はここにいくつかのショートカットがあります)。したがって、ユーザー名を ID に結合するのは正常なようです。しかし、仕事とユーザーを結びつけること自体はそれほど論理的ではありません。1 つのジョブを複数のユーザーが見ることができます。または、複数のユーザーが情報を追加した可能性があります。ジョブまたはその他のデータの「所有者」は 1 人のユーザーのみであると言えますが、アクセス制御を純粋にデータの「所有者」から除外するには制限が厳しすぎるようです。

しかし、繰り返しになりますが、これは将来への警告にすぎません。これが必要ない場合は、必要ありません。

于 2013-09-30T05:16:00.377 に答える