0

私は2つのテーブルを持っています:tbImages、tbUsers

tbImagesには一意のIDを持つ画像のパスがたくさんあります
tbUsersには一意のIDを持つユーザーがたくさんいます...

画像を配信するページをコーディングします...このページには、ID順に並べられたすべての画像が表示されます...管理者は7つの画像を選択して、メールで一部のユーザーに送信します...いつ登録する必要があります一部のユーザーがその画像を受け取った回数(おそらく3番目のテーブル)...これが問題です...登録日ごとに画像を注文する必要があります..すでに送信された画像は、その配信ページの最後に表示される必要があります..。。

これを行うためのより良い方法は何ですか?tbImagesには、ユーザーごとに1つの列がたくさんありますか?3番目のテーブル(tbDelivered)は、各ユーザーに「画像を受信しました」という列を持つ1行ですか??このSELECTを作成して、送信済みの画像を最後に表示するにはどうすればよいですか?

4

2 に答える 2

1

ユーザーIDに関連する3番目のテーブルimageID(リレーショナルテーブル)。JOIN次に、クエリでステートメントを使用できます。例えば:

relational_table
  imageID
  userID
  sendCount

クエリは次のようになります。

SELECT sendCount
FROM relational_table
WHERE imageID = $imageID
AND userID = $userID

これにより、その画像がそのユーザーに送信された回数が返されます。

于 2013-03-05T22:56:30.883 に答える
0

以下を含む3番目のテーブルを作成する必要があります。

  • 画像ID
  • ユーザーID
  • 数量

そして、次のようなselectステートメントを作成します。

SELECT tbImages.imageID, tbDelivered.quantity
FROM tbImages, tbDelivered
WHERE tbImages.imageID = tbDelivered.imageID;

まだ配信されていないものを表示するには、最後に追加する必要があります。

AND quantity = 0;

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

于 2013-03-05T23:45:37.257 に答える