数据存储/组织大型网站。如何组织?

时间:2013-07-26 07:11:16

标签: database storage structure media

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

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

1 个答案:

答案 0 :(得分:0)

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

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

users表看起来像这样:

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

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

SELECT * FROM media WHERE user_id=2;