是否可以在数据库中包含“文件夹”?

时间:2010-11-07 09:03:43

标签: mysql database database-design directory

我将拥有一个包含多个(少于10个)“主”表的数据库。除此之外,我想拥有数百或数千个相同类型的表(让“user_1”,“user_2”,“user_3”等)相同。是否可以将所有这些表放在目录/文件夹中?或者数据库本身已被视为表的“文件夹”?

ADDED

由于我对我为什么要这样做提出了很多疑问,我想详细说明。我想有很多表来优化对数据库的查询。如果我把所有东西放在一张桌子里,桌子就会很大。如果我想提取有关特定用户的信息,我首先需要在表中找到给定列中具有给定用户的那些行。这可能很费时间。我决定为每个用户创建一个表。因此,如果我需要了解用户的某些信息,我只需从“小”表中读取所需信息。

更具体地说,我可以拥有10 000个用户,并且有关给定用户的信息可以包含10 000行。我不想让一张表有10万行。

2 个答案:

答案 0 :(得分:3)

答案是 - 你不应该首先这样做。

每个用户都没有单独的表格,而是为所有用户数据使用一个表格,并添加一个列(例如userId)来存储有关该用户的信息。

答案 1 :(得分:2)

如果您想要基于用户的单独表格,则可以使用ownerschema概念来完成此操作。换句话说,您使用:

create table pax.table1 ...

和pax是他们的表的所有者。然后,每个用户都可以拥有自己的数据。

如果您不介意每个人都看到彼此“文件夹”中的数据,您可以选择一个包含指定特定用户的列的表,但在这种情况下您往往会失去基于用户的保护。

将每个用户的数据放在他们自己的架构(或所有者)中意味着您可以根据用户名限制访问。请记住,这些是单独的表,因此如果您希望这样做,则很难合并来自它们的数据。

即使在最大的数据库设置中,拥有数十万个表也是非常不寻常的。你可能想要考虑你做一些不明智的事情的可能性。发布此问题的“原因”而不是“如何”将有助于我们进一步帮助您。