这种关系方法是可伸缩的吗?


Is this relational approach scalable?

我正在开发一个任务管理器应用程序-其中一个方面是项目所有权和访问权限。在纸面上,只创建一个project_user_meta表是有意义的,如下所示:

REL_ID    USER_ID    PROJECT_ID    NAME                 VALUE
     1          4            17    'owner'              true
    72        209             8    'project_access'     true
   414         17           101    'task_access_only'   14

等等。但是,随着这个应用程序的范围扩大,当项目开始以数千计,用户数量以数万计时,这可能会变得非常麻烦和混乱。我在努力不让自己越出"我怎样才能做得更好"的界限。我想知道的是,随着这个设置的规模增加,我应该注意什么?

例如,假设我的公司决定让这个应用程序公开——用户增长超过10万,项目增长超过1万。这种方法在更大的范围内会面临哪些限制/缺点?

一开始将所有项目放在一个db中会容易得多,但是如果您的服务器无法使用一个db,那么您将希望将每个项目拆分为自己的db。这更容易扩展,并且还提供了一定程度的容错——一个项目的错误行为不会影响到其他项目。