Database 自定义结构的数据库设计

Database 自定义结构的数据库设计,database,database-design,Database,Database Design,我需要允许用户在我的应用程序中拥有自定义表(我使用的是PostgreSQL)。自定义用户数据的预期大小非常大,因此我正在寻找面向数据库的解决方案: 用户可以制作表格、删除表格、添加或删除数据 我考虑以下选择: a) 在我的应用程序数据库模式中创建附加表(每个表都以某个前缀开头,用于不同的用户) b) 要在同一数据库中创建单独的模式,作为我的应用程序,在witch表中,名称将以一些前缀开头,用于不同的用户 c) 创建一个单独的数据库和许多不同的模式(针对不同的用户) d) 为每个用户创建新数据库(

我需要允许用户在我的应用程序中拥有自定义表(我使用的是PostgreSQL)。自定义用户数据的预期大小非常大,因此我正在寻找面向数据库的解决方案:

用户可以制作表格、删除表格、添加或删除数据

我考虑以下选择:

a) 在我的应用程序数据库模式中创建附加表(每个表都以某个前缀开头,用于不同的用户)

b) 要在同一数据库中创建单独的模式,作为我的应用程序,在witch表中,名称将以一些前缀开头,用于不同的用户

c) 创建一个单独的数据库和许多不同的模式(针对不同的用户)

d) 为每个用户创建新数据库(将有<100个用户可以创建自定义表)

e) 创建数据库服务器的新实例并实现解决方案a)

f) 来实例新的HSQL服务器并保存自定义用户数据。我认为用户自定义数据将小于每个用户1GB,内存中有DB将加快速度

解决方案a)-e)适用于PostgreSQL


有什么想法吗?你会选择什么还有别的吗

用户将如何创建数据库表?他们会手动执行SQL,还是会以某种模糊的方式(例如使用LINQ或类似的方式)执行这些操作?每个用户的数据库到底有多大?“非常大”是相对的。用户将通过我的gui创建表。最大表大小:可能有10列和100万行。所有这些不同模式中的数据是否兼容?是否有任何原因导致所有这些模式不能作为单个模式存在,并且表由用户分区?表可以位于单个模式中。在这种情况下,我担心性能问题。我不确定用户自定义表是否会导致db Server上的高CPU使用率。在这种情况下,我无法谈论PostgreSQL的性能,但如果这是Oracle,并且您对用户数据非常了解,可以提前创建表,按用户对模式进行引用分区可以实现良好的性能,同时减少管理方面的麻烦和更多的控制。