1

私は現在、ユーザーが音楽や写真を投稿できるようにする Web サイトを実験しています。私が最初に考えたのは、標準的なアカウント情報を格納するユーザーのグローバル データベースを用意し、各ユーザーが、アップロードされたメディアに関する情報 (タイトル/アーティスト/ファイルの場所) を格納する独自のデータベースを生成することでした。すべてのメディア ファイルは別のシステムに保存され、必要に応じて呼び出されます。

ユーザーごとにデータベースを生成することについて確信が持てません... これは正しい方法ですか? また、メディアストレージを安全にする最善の方法は何ですか?

4

1 に答える 1

0

ユーザーごとに新しいデータベースを生成しないでください。いくつかの特定の条件下では正しい方法かもしれませんが、一般的には避けるべきです

代わりに、各メディア エンティティでユーザー識別子への参照を使用します。たとえば、次の 2 つのテーブルを持つ SQL データベースを使用しているusersとしmediaます。

ユーザー テーブルは次のようになります。

id     name          email
-----------------------------------------
1      John Doe      john.doe@example.com
2      Jane Doe      jane.doe@example.com

同様に、次のようなメディア テーブルがあります。

id     title         user_id
-------------------------
1      Nice picture  1
2      This too!     2

ここで、テーブル内がテーブル内のフィールドを指す外部キーであることを確認user_idしてください。mediaidusers

セキュリティの観点から、ユーザーがデータにアクセスするときに、自分が所有するデータのみを変更 (または表示) できるようにする必要があります。たとえば、 user が所有するメディアを返すには、次のJane Doeクエリを実行できます。

SELECT * FROM media WHERE user_id=2;
于 2013-07-26T07:13:28.253 に答える