2012-04-12 11 views
1

私は、php、mysql、およびjavascriptを使用して私の母親のための半単純なWebアプリケーションを作っています。mysql/php web pageのユーザアクセス管理

彼女は教師であり、このレッスンプランのさまざまな要素を管理することができます。 各コンポーネントには表があり、別のコンポーネントを含むことができる各コンポーネントには、その関係を保持する別の表があります。 (そのテーブルタイプにはそれぞれ2つのカラムがあり、関連テーブルの外部キーを持っています)

私はほぼ完了しましたが、彼女は友人にこれを使うことを許可したいと思っています。私はユーザーコントロールを実装して、コンポーネントを作成するユーザーだけがそのコンポーネントを表示および編集できるようにしたいと考えています。

パブリックコンポーネントを作成できるようにして、ユーザーがコンポーネントを独自のデータセットにコピーできるようにします。

私は、各ユーザーが独自のデータベースインスタントを持っているか、各テーブルには、パブリック/プライベートステータスの所有者の列と列を持つべきか、私は考えていない別の代替がある必要がありますユーザーコントロールを実装するために私の質問の。

私は、両方のコンポーネントのユーザータグが現在のユーザーと一致することを確認する必要があるため、コンポーネント間のリレーションを作成するときに追加のmysqlクエリが必要になることがあります。

すべてのフィードバック/提案はこれにアクセスする/使用している唯一の人々が自分の授業を展開されること

+0

彼女の友人たちは、自分のレッスンプランを持っている教師であることを意識しているのでしょうか?関係の点で大きな違いを生む。 – tcole

+0

他の先生だけがこれを見て、レッスンプランの開発/編成にそれを使用します。 –

答えて

0

を計画し、私は確かに同じデータベース内でこれを実装して他の教師になります更新

便利です。この場合、ユーザーごとに異なるデータベースを用意するのは良い解決策ではありません。たとえば、各ユーザーのデータが別々のデータベースにある場合にUIDと衝突する場合に、検索機能を構築する方法を考えてみましょう。悪夢になるだろう。個別データベースは、各データベースが別々のアプリケーションを扱う場所で動作し、異なるデータベース内のデータ間の関係は正確にゼロです。

このように実装する方法について説明します。これはあなたのモデルによって異なります。各レッスンプランには、唯一の所有者が1人しかいないでしょうか?その場合は、その情報をコンポーネント表に追加すると機能する可能性があります。または、所有権を定義するために別のテーブルが必要な場合があり、したがって異なるコンポーネントへのアクセスが必要な場合があります。いずれにしても、アクセスロジックがアプリケーションにデカップルされカプセル化されていることを確認して、将来変更できるようにします。たとえば、シンプルな単一所有者モデルから始めて、サイトが成長し、成長し、まもなく人々のグループ全体が、コンポーネントへのアクセス権を所有/編集する必要があるとします。

+0

フィードバックをいただきありがとうございました! –

関連する問題