私は、ユーザーが撮影した写真を他の用途に送信できる Web サイトを設計しています。ユーザーがサインアップ、サインインなどできるように MySQL と PHP のページを設定しましたが、別のユーザーに割り当てられた画像をユーザーにアップロードさせるにはどうすればよいですか? 私は、すべての画像に ID を持たせ、特定のユーザーが特定の ID の画像にアクセスできるようにする方法を考えていました。どんな情報でも大歓迎です。
4 に答える
ここの情報を見ると、おそらく次の設定が必要になるでしょう。
テーブル:
userrelationship(userid, friendid)
images(id, imagepath, userid)
sharedimages(id, originaluserid, friendid, imageid)
それは本当に基本的なことですが、それはあなたを始めるはずです.
私の答えは、上記のユーザーのどちらとも異なります。
table - image
id (primary) | source | date_added | etc...
int varchar int(10)
table - user
id (primary) | date_added | name
int int(10) varchar
table - user_image
user_id (primary) | image_id (primary) | date_added | permissions
int int int(10) int
基本的に、ユーザー用のテーブルと画像用のテーブルがあります。次に、ユーザーとイメージのペアを定義するためのテーブルを用意します。そうすることで、画像とユーザーを分離し、それらの間にリンクを作成できます。テーブルに新しい行を作成user_image
して他のユーザーに画像アクセスを許可し、そのpermissions
列を使用して、それらの画像の制御に関するそれらのユーザーの権限を正確に制御します。
非常に柔軟なシステムです。それがお役に立てば幸いですか?
私はこのようなものに行きます
table - images
image_id | image_source | image_from | image_to
1 source of img user id user id
いくつかのオプションがあり、それをどのように実装するかはあなた次第です。
最初のオプション: 写真をアップロードしてもらい、一意のハッシュまたは ID に割り当てる/名前を変更し、ユーザーに関連付けられているテーブルに配置します。
id | hash | user_id
2 番目のオプション: イメージを MySQL データベースに BLOB としていつでも保存できますが、より多くの情報が必要になる可能性があるため、負担になる可能性があります。
id | blob (base64 encoded data) | name | extension | user_id
そして、残りのオプションはその中間にあります。基本的には画像専用のテーブルを設定し、権限を追加したい場合は別のテーブルに入れ、ユーザーがアクセスしようとしたときに画像の所有者の権限を確認してください:
user_id | permissions
画像の所有者が写真を自分だけで閲覧したい場合は、その許可タイプを追加するか、友人、友人または友人、または誰でも必要な場合は、それらの個別の許可フラグを作成できます。
画像ごとの権限を探している場合は、権限フィールドを画像テーブルに添付する必要があります。繰り返しますが、両方を組み合わせて実行できます。イメージ テーブルのアクセス許可フィールドが null の場合は、ユーザーの既定のアクセス許可にフォールバックできます。