1

我目前正在试验一个允许用户发布音乐和照片的网站。我最初的想法是拥有一个存储标准帐户信息的全球用户数据库,然后每个用户将生成她自己的数据库,用于存储上传媒体的信息,即标题/艺术家/文件位置。所有媒体文件都将存储在一个单独的系统中,并在需要时调用。

我不确定为每个用户生成一个数据库......这是正确的做法吗?还有什么是使媒体存储安全的最佳方法?

4

1 回答 1

0

不要为每个用户生成一个新数据库。在某些特定条件下,这可能是正确的做法,但通常应该避免。

相反,在您的每个媒体实体中使用对用户标识符的引用。例如,假设我们正在使用具有两个表的 SQL 数据库:usersmedia

用户表如下所示:

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_idmedia表中是指向表中id字段的外键users

在安全性方面,您现在需要确保当您的用户访问数据时,她只能修改(或查看)她拥有的数据。例如,为了返回我们用户拥有的媒体Jane Doe,您可以查询:

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