0

これが私がやったことです。ログインページのあるウェブサイトです。ログインすると、コミックブックに関する情報を保持するように変更できるテーブルにアクセスできます (たとえば、所有しているコミック、号、巻など)。ユーザー情報とコミック情報という 2 つのテーブルを持つ MySql データベースがあります。ユーザーテーブルにいる場合(登録済みなど)、データベースにアクセスできるように設定しましたが、データベースはグローバルです。ユーザーに含まれる全員が同じコミックのリストを表示します。

(説明が長くて申し訳ありません。できるだけ明確にしたいだけです)

10人程度(友達)程度の利用で、PHPやmysqlも比較的初心者なのでセキュリティの心配はありません。上記の作業は、何時間もの調査とチュートリアルの結果です。

私の質問は、各ユーザーが独自のコミック情報を追加するために変更できる独自の個人リストを作成し、ログイン後にのみアクセスできるようにするにはどうすればよいですか?

4

2 に答える 2

3

と の 2 つのフィールドを持つテーブルを作成しuser_idますcomic_id

そのテーブルの各エントリは、 iduser_idのコミックを所有するid のユーザーに対応しますcomic_id

これは、一般にユーザーとコミックの間の多対多の関係と呼ばれるものです。

その他の資料:

于 2012-08-01T16:09:48.613 に答える
1

comicbook1つのアプローチは、テーブルに「user_id」列を追加することです。

次に、SELECTクエリを変更して、WHERE句に述語を追加できます。

SELECT c.id
 FROM comicbook c
 WHERE c.user_id = ?

疑問符の代わりに、クエリで「ログイン」しているユーザーのuser_id値を指定します。

DML操作のINSERTステートメントの場合、「ログインした」ユーザーの値をuser_id列に挿入します。

UPDATEおよびDELETE操作の場合、SELECTの場合と同様に、WHERE句に述語を追加します。

このアプローチでは、comicbookログインしたユーザーごとに1つのテーブルを個別のテーブルのように効果的に見せることができます。各ユーザーは、テーブルの「セクション」のみを表示および更新でき、「マーク」されていない行を表示または変更することはできません。 user_idを使用します。

これはおそらく最も単純なアプローチであり、あなたが述べた目標を達成します。


一部のユーザーに「特権」を与えて他のユーザーの漫画を表示したい場合など、このアプローチでは満たされない要件がいくつかありますが、すべてではありません。しかし、それを実装することになったときでも、comicbookテーブル内の行がユーザーに「属している」という考えがあります。

于 2012-08-01T16:20:06.177 に答える