我正在设计一个系统,该系统具有用于存储用户和与用户相关的信息的数据库。更具体地说,表中的每个用户都只有很少的信息。诸如名称、密码、uid 之类的东西。
然后每个用户都有零个或多个容器,我最初这样做的方式是在数据库中创建第二个表,其中包含容器并有一个引用拥有它的用户的字段。所以像containerName, content, owner。
因此,对来自容器的数据的查询看起来像:
SELECT content
FROM containers
WHERE (containerName='someContainer' AND owner='someOwner');
我的问题是这是否是一个好方法,我认为可扩展性说我们有成千上万的用户,每个用户说......每个 5 个容器(但是每个用户可以有不同数量的容器,但 5 个可能是典型案例) . 我担心的是,当我在一个查询中可能想要的 5*1000 个条目中有 5 个条目时,搜索数据库会变得很慢。(我们通常可能只需要查询中特定容器的内容,并且我们正在使用基本上 4995 个条目的开销来查看数据库,对吗?如果我订阅了一百万用户会发生什么,它会变成一个巨大的表直觉上觉得是个坏主意。
我的第二个想法是每个用户都有表,但这也不是一个很好的解决方案,因为这会在数据库中给我 1000 个表,这(也是直觉)似乎是一个不好的方法做。
任何有助于理解如何设计它都将不胜感激,我希望一切都清晰易懂。